必要な場合にのみ、テキストファイルから末尾のスペースを削除します。

必要な場合にのみ、テキストファイルから末尾のスペースを削除します。

以下を使用して末尾のスペースを削除しています。

sed -i 's/[ \t]*$//' *.txt

ただし、このコマンドはすべてのファイルを書き換えます。

テキストファイルの後ろにスペースがあることを確認し、そうでないスペースをスキップする便利な方法はありますか?

ベストアンサー1

変更する必要がある行があるかどうかを確認するには、firstを使用できます。grepただし、最悪の場合(最後の行だけを修正する必要がある場合)は、ファイルを2回読み続けます。

for f in ./*.txt; do
    grep -q '[[:blank:]]$' "$f" &&
      sed -i 's/[[:blank:]]*$//' "$f"
done

おすすめ記事