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
첫 줄을 선택하십시오 -
i
텍스트와 개행 삽입 -
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
원인 예는 파일 종료에 대한 변경 사항을 저장합니다.