![Linux에서 터미널을 통해 sed를 사용하여 파일 시작 부분에 텍스트 삽입](https://linux55.com/image/17954/Linux%EC%97%90%EC%84%9C%20%ED%84%B0%EB%AF%B8%EB%84%90%EC%9D%84%20%ED%86%B5%ED%95%B4%20sed%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%20%EC%8B%9C%EC%9E%91%20%EB%B6%80%EB%B6%84%EC%97%90%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%EC%82%BD%EC%9E%85.png)
답변1
sed
스트림 편집에 사용됩니다. 파일은 스트림이 아닙니다. ed
또는 와 같이 이러한 목적으로 설계된 프로그램을 사용하십시오 ex
. 이 -i
옵션은 sed
이식할 수 없을 뿐만 아니라 실제로 파일을 삭제하고 다시 생성하므로 파일에 대한 모든 심볼릭 링크도 끊어집니다. 이는 의미가 없습니다.
ed -s file << EOF
0a
some text
you want to insert
goes here
.
w
EOF
답변2
입력 파일의 줄 범위를 첫 번째 줄로 제한한 다음 줄의 시작 부분을 텍스트로 바꾸어 O/P를 추가하고 새 파일로 리디렉션합니다.
cat f1
one
sed '1,1 s/^/abcdef\n/' < f1 >f2
cat f2
abcdef
one
답변3
그의 sed 표현이 매우 좋다고 생각했기 때문에 abc의 답변을 +1했습니다.
그러나 Regis는 두 개의 파일을 원하지 않았습니다.끼워 넣다그의 파일의 텍스트이므로 abc의 답변을 조정했습니다.
hmontoliu@ulises:/tmp$ cat > f1
one
^C
hmontoliu@ulises:/tmp$ sed -i '1 s/^/foobar\n/' f1
hmontoliu@ulises:/tmp$ cat f1
foobar
one