파일의 특정 문자열 뒤에 새 줄을 추가하시겠습니까? [복사]

파일의 특정 문자열 뒤에 새 줄을 추가하시겠습니까? [복사]

지금 나는 사용하고 있어요

echo sed '/\Random/a \
 newly added line' info.txt

파일에 일부 텍스트를 추가하지만 특정 문자열 아래에 무작위로 텍스트를 추가해야 합니다. sed를 사용하여 가능하다는 것을 알고 있지만 스크립트가 실행되면 콘솔에 새 파일 내용이 표시되지만 실제로는 표시되지 않습니다. 파일에서도 동일한 변경이 이루어집니다.

예:-

입력 파일

Some text
Random
Some stuff

결과물 파일

Some text
Random
newly added line
Some stuff

답변1

echo환경에 특정한 것이 없으면 동일한 명령이 출력을 제공하기 때문에 이것이 단지 오타라고 가정합니다.

sed '/Random/a\
newly added line' info.txt

stdout으로 보내는 대신 파일을 실제로 조작 하려면 구문은 다르지만 구현에서 지원하는 일부 스위치를 sed사용해야 합니다 .-ised

  • GNU, busybox, NetBSD, OpenBSD 최소:

    sed -i '/Random/a\
    newly added line' info.txt 
    
  • FreeBSD, 맥OS:

    sed -i '' '/Random/a\
    newly added line' info.txt 
    
  • -i스위치는 Solaris에서 사용할 수 없습니다 sed.

-i원하는 대로 작동하는지 확인하려면 처음부터 실행하지 않는 것이 가장 좋습니다 . 해당 사실이 확인되면 이를 추가 -i하면 필요한 것을 얻을 수 있습니다.

파일의 내용은 아래와 같으며 다음을 통해 확인할 수 있습니다 cat info.txt.

Some text
Random
newly added line
Some stuff

관련 정보