2009-03-25 11 views
1

이 질문에 대한 대답입니다. 이 아니며, 패턴과 일치하는 모든 줄 아래 또는 위에 새 줄을 추가하는 방법을 묻습니다.셸 : 주어진 텍스트 줄 사이에 줄 바꾸기 추가

내가하려는 것은 한 줄에있는 패턴 사이에 줄 바꿈을 추가하는 것입니다.

다음은 예입니다.

전에 :

월요일 : 오전 8시에서 오후 10시까지

후 :

월요일 :

오전 8시에서 오후 10시까지

따라서이 경우 '월요일'패턴 다음에 새 행을 삽입하십시오. ':'까지의 문자가 들어

답변

5
sed 's/Monday:/&\n/g' 
+0

나는 당신이 그곳에서 한 것을 봅니다. – strager

6
echo 'Monday:8am-10pm' | sed -e 's/^Monday:/&\n/' 

:

echo 'Monday:8am-10pm' | sed -e 's/^[^:]*:/&\n/' 
+0

이 답변은보다 완전합니다. & 문자를 게시 한 후에 & 사용하도록 수정했습니다. – jthompson

2
sed 's/Monday:/&\n\n/g' 

그들을 대체 할

+0

2 개의 개행 문자가 실수였습니다. 나는 그것이 단지 하나의 개행이어야한다는 것을 의미했다. 그러나 그것이 맞다면 당신은 옳을 것입니다. 감사. – Dennis

+0

그럴 경우 올바른 대답을 수락했습니다. –

0

가 나오지 사용 (위 그림과 같이 2 줄 바꿈을 원하는 가정하여) :

echo "Monday:8am-10pm" | sed -e 's/:/:\n\n/' 
+0

선이 조금 엉망이 된 것처럼 보입니다. – strager

+0

예, 이제 해결되었습니다. – vezult