서식이 지정된 결과를 일부 기존 텍스트 파일에 인쇄하려면 "find" exec 명령을 작성해야 합니다. 어떤 이상한 경우에는 새 줄 대신 이전 줄의 마지막 줄(LF 다음에 CR이 없나요?)에 줄을 추가합니다. 이런 일이 발생하지 않도록 하려면 어떻게 해야 합니까? 추가하기 전에 텍스트 파일을 수정하는 명령이 있습니까? 도스2유닉스?
답변1
사용:
awk 1 file1 file2 ... > outfile
유일한 cat file1 file2 ... > outfile
문제는 와는 달리, 그 중 하나라도 cat
열고 읽을 수 없는 경우, 파일의 나머지 부분을 계속 진행하는 대신 오류와 함께 즉시 종료된다는 것입니다. awk
이것이 문제인 경우 대부분의 최신 시스템에서는 다음을 사용하여 이미 제안한 대로 수행할 수 있습니다.file1
file2
grep ''
여기+ -h
파일 이름을 생략하는 옵션(단, 이는 악용되는 비표준 기능이라는 점에 유의하세요 grep
):
grep -h '' file1 file2 ... > outfile
답변2
한 가지 흥미로운 hack
점은 awk를 사용하여 bash 명령의 형식을 지정하고 다음과 같이 bash에 푸시할 수 있다는 것입니다.
awk '{ print "find " $1 " -exec ls {} \;" }' ./source_file | bash
이렇게 하면 명령을 즉시 실행할 수 있습니다. 예를 들면 다음과 같습니다.
find /var -exec ls {} \;
find /home/user1 -exec ls {} \;
# and so on depending on the contents of the ./source_file
도움이 되었기를 바랍니다 :)