파일의 첫 번째 줄 앞에 텍스트를 삽입하는 방법은 무엇입니까?

파일의 첫 번째 줄 앞에 텍스트를 삽입하는 방법은 무엇입니까?

sed파일의 특정 줄에 텍스트를 추가하는 명령을 찾고 있었습니다 . 그러면 1행 뒤에 텍스트가 추가됩니다.

sed '1 a\

하지만 난 그걸 추가하고 싶어앞으로1호선. 그것은 다음과 같습니다:

sed '0 a\

하지만 다음과 같은 오류가 발생합니다 invalid usage of line address 0.

어떤 제안이 있으십니까?

답변1

sedinsert( ) 옵션을 사용하면 i이전 줄에 텍스트를 삽입합니다.

sed '1 i\

질문 작성자의 업데이트:

GNU를 사용하여 파일을 제자리에서 편집하려면 다음 옵션을 sed추가해야 했습니다 .-i

sed -i '1 i\anything' file

그리고 문법

sed  -i '1i text' filename

GNU가 아닌 sed의 경우

백슬래시 바로 뒤에 1i\Enter 키를 눌러야 합니다 first_line_text.

sed -i '1i\
first_line_text
'

또한 일부 비 GNU sed구현(예: macOS의 구현) 에 유의하세요.필요하다플래그에 대한 인수 -i( -i ''GNU와 동일한 효과를 얻기 위해 사용됨 sed).

sed전혀 지원되지 않는 구현 의 경우 -i이 옵션 없이 실행하되 출력을 새 파일로 리디렉션합니다. 그런 다음 이전 파일을 새로 생성된 파일로 교체합니다.

답변2

에코는 텍스트를 가져오는 데 사용됩니다. Cat filename - 콘솔에서 파일을 인쇄한 다음 이를 사용하여 다른 파일 filename1로 보낸 다음, filename1을 filename으로 이동하여 원하는 파일의 첫 번째 줄에 텍스트를 삽입합니다.

  (echo "some text" && cat filename) > filename1 && mv filename1 filename

답변3

POSIX 도구를 사용할 수 있습니다 ex.

ex a.txt <<eof
1 insert
Sunday
.
xit
eof

https://pubs.opengroup.org/onlinepubs/9699919799/utilities/ex.html

답변4

sed  -i '1i new_text' file_name

-i옵션을 지정하지 않으면 오류가 표시되지 않고 표준 터미널에 출력이 표시되지만 파일에 텍스트가 삽입되지는 않습니다.

관련 정보