1

ファイルの末尾に 2 行または 3 行以上の空の行があるファイルがいくつかあります。そのようなファイルをすべて見つけて、自動化された方法で空の行を削除するにはどうすればよいですか?

4

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 に答える