ファイルの末尾に 2 行または 3 行以上の空の行があるファイルがいくつかあります。そのようなファイルをすべて見つけて、自動化された方法で空の行を削除するにはどうすればよいですか?
3 に答える
1
末尾の空白行をトリミングする方法はたくさんあります。最初に頭に浮かぶのは次のとおりです。
perl -pe 'BEGIN{ undef $/} 1 while s/\n\n$/\n/'
ファイルを見つけて置き換えるには、次のようにします。
find /base/directory -type f -exec perl -i -pe 'BEGIN{ undef $/} 1 while s/\n\n$/\n/' {} \;
于 2013-02-19T06:40:48.863 に答える
1
dotall オプションを選択してこの正規表現を使用できます
^(\r?\n){2,}$
そしてそれを何も置き換えない
于 2013-02-19T07:11:23.430 に答える
1
bash シェルを使用すると、現在のディレクトリ内のすべてのファイルがテストされ、末尾に 2 つ以上の改行があるファイルのみが出力されます。
for f in `ls *`; do if [ "$(tail -2 $f | tr '\n' 'x')" = "xx" ]; then echo $f; fi; done
ヒント:サブディレクトリを再帰的に検索するには、イニシャルls *
をに置き換えますfind . -type f
ファイルから末尾の改行を削除するコマンドについては、この別の投稿を試してください。
于 2013-02-19T08:02:19.793 に答える