파일의 첫 줄에 어떻게 추가하나요?

파일의 첫 줄에 어떻게 추가하나요?

sed를 사용하여 파일의 첫 번째 줄 전체를 해당 첫 번째 줄과 추가 텍스트로 어떻게 바꿀 수 있습니까? 예를 들어 -foo한 줄만 포함된 파일에 어떻게 추가할 수 있습니까 ?

testfile내용 시작:

some-text

testfile내용 끝:

some-text-foo

답변1

파일의 첫 줄에 어떻게 추가하나요?

sed를 사용하여 파일의 첫 번째 줄 전체를 해당 첫 번째 줄과 추가 텍스트로 어떻게 바꿀 수 있습니까?

Windows에서 SED를 사용하여 줄 번호 1의 끝에 문자열을 추가한 다음 EOL 문자에 대해 DOS 형식, 즉 LF가 아닌 CRLF로 다시 변환하는 또 다른 방법이 있습니다.

첫 번째 명령( -foo첫 번째 줄 끝에만 문자 추가)

SED -i "1 s|$|-foo|" "C:\Path\testfile.txt"

두 번째 명령(EOL을 캐리지 리턴 줄 바꿈으로 다시 변환)

SED -i "s/$/\r/" "C:\Path\testfile.txt"

답변2

sed '1{s/$/-foo/}' file

1은 첫 번째 줄에 범위를 지정하는 데 사용할 수 있습니다 num,num. 예를 들어 3,5는 줄 3을 줄 5로 변경합니다. s 대체의 경우 $는 줄의 끝을 의미합니다. 바로 파일을 변경하고 싶다면 -i 매개변수를 사용하세요. 어쨌든 주의해서 사용하세요.

awk 'FNR==1{print $0 "-foo";}' file(s)

awk가 더 강력하지만 파일을 즉시 변경할 수 있는 -i 매개변수가 없습니다.

답변3

당신은 이것을 할 수 있습니다

sed -i '1!b;s/$/\-foo/g' testfile

이 명령은 파일을 가져와서 첫 번째 줄만 보고(1!b;) 줄 끝($)을 찾아 원하는 문자열로 바꿉니다.

관련 정보