지금 나는 사용하고 있어요
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
사용해야 합니다 .-i
sed
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