나는 파일을 반복적으로 디렉토리에 저장하고 있지만, 일부 파일에는 마지막 줄 다음에 개행 문자가 없어서 문제가 발생합니다.
프로세스의 각 파일에 줄 바꿈을 어떻게 추가합니까? 여기에 쉘 스크립트의셸 스크립트에 개행 문자가있는 고양이 파일
find $1 -type f |xargs cat > test.csv
나는 파일을 반복적으로 디렉토리에 저장하고 있지만, 일부 파일에는 마지막 줄 다음에 개행 문자가 없어서 문제가 발생합니다.
프로세스의 각 파일에 줄 바꿈을 어떻게 추가합니까? 여기에 쉘 스크립트의셸 스크립트에 개행 문자가있는 고양이 파일
find $1 -type f |xargs cat > test.csv
사용 A의 루프 :
find $1 -type f | while IFS= read -r file
do
cat "$file"
echo
done > test.csv
for f in `find $1 -type f`; do sed -E '$s/(.*\S+.*)/\1\n/' $f; done
편집 : 당신은 당신이 다음을 수행 할 수 있습니다, 마지막 라인으로 그 자체로 줄 바꿈을하지 않는 파일의 줄 바꿈을 추가하고 싶었 내 첫 번째 대답은 xargs를 사용하지만은 제공하지 않았다 예상 된 결과가 다시 루프에서 떨어졌습니다.
find $1 -type f |xargs awk 'FNR==1 && NR>1 {print ""} {print}'
또는
find $1 -type f |xargs awk 'ENDFILE {print ""} {print}'
경우 : 당신은 루프를 사용할 수 있습니다
for file in $(find .); do cat $file >> huge_file; echo " " >> huge_file; done
나는 이것이 상당히 오래된 질문이라는 것을 알고 있지만, 나는 똑같은 문제가있다. 위의 답변 중 아무 것도 백틱 및/usr/bin/find를 사용하기 때문에 공백이있는 파일에는 사용할 수 없습니다. 그렇게하면 파일을 사용해야 만하지 않는 한 절대적으로 필요하지 않은 $ IFS를 변경해야합니다.
for i in *; do cat "$i" && echo ""; done
:
이 그것에 내 걸릴 것입니다