3

ディレクトリ内でファイルを再帰的にまとめていますが、一部のファイルでは最後の行の後に改行がないため、問題が発生します。
プロセス内の各ファイルに改行を追加するにはどうすればよいですか? ここにシェルスクリプトがあります

    $1 を見つける -type f |xargs cat > test.csv

4

5 に答える 5

5

これはかなり古い質問だと思いますが、同じ問題がありました。バッククォートと /usr/bin/find を使用しているため、上記の回答はどれも空白を含むファイルでは機能しないようです。これを行うには $IFS を変更する必要がありますが、ファイルのみを使用する必要がある場合を除き、これはまったく必要ありません。

これは私の見解です:

for i in *; do cat "$i" && echo ""; done
于 2012-04-24T09:05:44.160 に答える
1

for ループを使用します。

for file in $(find .); do cat $file >> huge_file; echo " " >> huge_file; done
于 2011-09-13T08:10:10.743 に答える
1

最後の行として独自の改行を持たないファイルに改行を追加する場合は、次のようにします。

for f in `find $1 -type f`; do sed -E '$s/(.*\S+.*)/\1\n/' $f; done

編集:私の最初の答えは xargs を使用しましたが、期待した結果が得られなかったため、ループに戻りました。

于 2011-09-13T08:34:41.600 に答える