내용에 따라 파일의 첫 번째 또는 두 번째 줄로 줄을 추가합니다.

내용에 따라 파일의 첫 번째 또는 두 번째 줄로 줄을 추가합니다.

많은 파일의 첫 번째 줄로 한 줄을 추가하고 싶습니다. 단, 파일의 첫 번째 줄이 shebang이 아닌 경우에는 두 번째 줄이어야 합니다.

답변1

이를 수행하는 방법에는 여러 가지가 있습니다.

sed '1!b
/^#!/a\
one_line_text
//!i\
one_line_text' infile

줄의 백슬래시(있는 경우)는 이스케이프되어야 합니다(예: \로 변경 \\).
빈 파일은 편집되지 않습니다. 또한 이는 파일을 그 자리에서 편집하지 않습니다. 설명서를 확인하여 파일 편집을 sed지원하는지 확인 -i하고 해당 옵션의 구문을 확인하세요.

답변2

아래 스크립트에서 첫 번째 줄이 shebang 줄이면 두 번째 줄에 새 내용이 삽입되고, 그렇지 않으면 첫 번째 줄에 내용이 삽입됩니다.

테스트를 거쳐 잘 작동함

#!/bin/bash
if [[ `awk 'NR==1 && $1 == "#!/bin/bash" {print $1}' file` == "#!/bin/bash" ]]
then
sed '2i content' file
else
sed '1i content' l.txt
fi

관련 정보