AWK를 사용하여 파일 레코드 끝에 \n을 추가하는 방법

AWK를 사용하여 파일 레코드 끝에 \n을 추가하는 방법

하나 이상의 줄을 포함할 수 있는 파일이 있습니다.

oracle1.txt
oracle2.txt
oracle3.txt

AWK를 사용하여 표시할 마지막 줄 뒤에 \n을 추가하는 방법

oracle1.txt
oracle2.txt
oracle3.txt\n

나는 그것을 시도했지만 echo -e "\n" >> manifest.txt파일 끝에 \n 대신 -ea가 붙었습니다. 내가 뭘 잘못했나요?

답변1

주석에서 이미 언급했듯이 echo >> manifest.txt이는 대부분의 쉘에서 작동하며 echo '' >> manifest.txt쉘을 모르는 경우 더 안전할 수 있습니다.

정말로 이 작업을 수행하려면 다음 규칙 awk을 사용할 수 있습니다 END(설명에도 언급되어 있음) awk 'END{printf "\n"}' >> manifest.txt.

printf대신 &를 사용 print하거나 다음을 END사용할 수도 있습니다 BEGIN.awk 'BEGIN{print ""}' >> manifest.txt

manifest.txt입력 으로 사용 awk하고 출력으로 사용하지 않으려면 ( awk동일한 파일을 읽고 쓸 수 없음) 간단한 것이 awk 1 manifest.txt가능합니다(적어도 on GNU awk, 그렇지 않은 경우 awk '1;END{print ""} manifest.txt트릭을 수행해야 함). 입력이 다음과 같이 나누어져 있기 때문입니다.기록의지하다기록 구분 기호 RS(기본값은 \n) 1이며 항상 true로 평가되므로 기본값은행동( {print})는 모든 라인에서 실행됩니다. printprint $0동일하고 printf $0 ORS, ORS출력 레코드 구분 기호\n마지막에도 기본값은 .so입니다.기록입력에서 끝나지 않는 내용은 \n출력에서도 이어집니다.\n

관련 정보