지금까지 파일의 시작 부분에 줄을 추가하는 방법을 찾을 수 있었지만 정확히 내가 원하는 것은 아닙니다. 예제로 보여 드리겠습니다
파일 내용
some text at the beginning
결과
<added text> some text at the beginning
비슷하지만 새로운 줄을 만들고 싶지 않습니다 …
sed
가능한 경우이 작업을 수행하고 싶습니다 .
답변
sed
주소에서 작동 할 수 있습니다 :
$ sed -i '1s/^/<added text> /' file
1s
여기 모든 대답 에서이 마법이 무엇입니까 ? 라인 어드레싱! .
<added text>
처음 10 줄 을 추가 하고 싶 습니까?
$ sed -i '1,10s/^/<added text> /' file
또는 다음을 사용할 수 있습니다 Command Grouping
.
$ { echo -n '<added text> '; cat file; } >file.new
$ mv file{.new,}
답변
파일 시작 부분에 줄을 추가 \n
하려면 위의 최상의 솔루션에서 문자열 끝에 줄 을 추가해야합니다 .
가장 좋은 해결책은 문자열을 추가하지만 문자열을 사용하면 파일 끝에 줄을 추가하지 않습니다.
sed -i '1s/^/your text\n/' file
답변
파일이 한 줄이면 다음을 사용할 수 있습니다.
sed 's/^/insert this /' oldfile > newfile
한 줄 이상인 경우. 다음 중 하나 :
sed '1s/^/insert this /' oldfile > newfile
sed '1,1s/^/insert this /' oldfile > newfile
다양한 라인을 수행하는 방법을 알 수 있도록 후자를 포함 시켰습니다. 이 두 가지 모두 영향을받는 줄의 시작 줄 표식을 삽입하려는 텍스트로 “대체”합니다. 당신은 또한 (당신 sed
이 충분히 현대적 이라고 가정 ) 사용할 수 있습니다 :
sed -i 'whatever command you choose' filename
바로 편집 할 수 있습니다.
답변
당신이 사용할 수있는 cat -
printf '%s' "some text at the beginning" | cat - filename
답변
개행 만 삽입하려면 다음을 수행하십시오.
sed '1i\\'
답변
서브 쉘 사용 :
echo "$(echo -n 'hello'; cat filename)" > filename
답변
OS X에서는 sed -i <pattern> file
에 실패합니다. 백업 확장을 제공하는 경우, sed -i old <pattern> file
다음 file
동안 장소에서 수정 file.old
작성됩니다. 그런 다음 file.old
스크립트에서 삭제할 수 있습니다 .