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

sed특정 줄의 파일에 텍스트를 추가하는 명령을 둘러 보았습니다 . 이것은 라인 1 뒤에 텍스트를 추가하는 데 효과적입니다.

sed '1 a\

그러나 나는 그것을 줄 1 앞에 추가하고 싶습니다 .

sed '0 a\

하지만이 오류가 발생합니다 : invalid usage of line address 0.

어떠한 제안?



답변

앞 줄에 텍스트를 삽입하는 sed‘삽입 ( i) 옵션을 사용하십시오 .

sed '1 i\

질문 작성자의 업데이트 :

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

sed -i '1 i\anything' file

또한 구문

sed  -i '1i text' filename

비 sed의 경우

백 슬래시 직후 1i\와 이후에 리턴 키를 눌러야합니다 first_line_text.

sed -i '1i\
first_line_text
'

또한 GNU 이외의 일부 sed구현 (예 : macOS의 구현) 에는-i 플래그에 대한 인수가 필요 합니다 ( -i ''GNU와 동일한 효과를 얻기 위해 사용 sed).


답변

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

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


답변

Ex 모드에서 Vim을 사용할 수 있습니다 :

ex -sc '1i|ALFA BRAVO' -cx file
  1. 1 첫 줄을 선택하십시오

  2. i 텍스트와 개행 삽입

  3. x 저장하고 닫습니다


답변

당신은 할 삽입 첫 번째 행하기 전에 텍스트보다는 추가 한 후 그것을, 그래서 사용

sed '1 i\
your_text' your_file

here 문서도 도움이 될 수 있습니다.

cat /dev/stdin your_file <<EOI
Your text
goes here
EOI


답변

GNU awk> = 4.1 사용 :

awk -i inplace 'BEGINFILE{print "first line"}{print}' foo.sh

모든 sed답변 과는 반대로 이것은 빈 파일에서도 작동합니다.


답변

sed  -i '1i new_text' file_name

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


답변

0a시도한 명령은 않습니다 에서 작동 ex, 전신에를vi :

printf '%s\n' 0a 'Anything you want to add' . x | ex file.txt

printf자체 명령 출력 :

0a
Anything you want to add
.
x

0a수단은 0 번째 줄 뒤에 (즉, 첫 번째 줄 앞에) 추가합니다.

다음 줄 또는 여러 줄 은 추가 할 리터럴 텍스트입니다.

.자체의 라인은 “추가”명령을 종료합니다.

x원인 예는 파일 종료에 대한 변경 사항을 저장합니다.