テキスト ファイルの末尾の空白を表示するにはどうすればよいでしょうか?

テキスト ファイルの末尾の空白を表示するにはどうすればよいでしょうか?

テキスト ファイルの末尾の空白を印刷して確認できるようにしたいと思います (削除ではなく、表示のみ)。

印刷されない文字を表示するはずの を試してみましたcat -vが、期待どおりに表示されませんでした (行間の視覚的な違いはありません)。例:

$ printf "foo\nbar \t\n" > file.txt
$ cat -v file.txt 
foo
bar     

空白を印刷/表示するとは、他の行の空白がないのと比較して、末尾の空白があることを、特殊文字、色 (ファイルが を使用して表示される場合などgit diff)、または同様のものによって視覚的に人間に示すことを意味します。

他に方法はあるでしょうか?


注: 私は macOS Sierra を使用していますが、GNU コマンドと BSD コマンドの両方にアクセスできますcat

$ type -a cat
cat is /usr/local/opt/coreutils/libexec/gnubin/cat
cat is /bin/cat
$ cat --version
cat (GNU coreutils) 8.28
$ /bin/cat --version
/bin/cat: illegal option -- -
usage: cat [-benstuv] [file ...]

答え1

gnu catそのためのスイッチがある-Eので、次のような入力で

printf " one \ntwo \t\n"

印刷されます

 one $
two    $

この動作をエミュレートする方法は多数あります。たとえば、sed「raw」モードでの使用などです。

sed -n l infile

または

paste -d '$' infile /dev/null

または、任意のテキスト処理ツールを使用して、$各改行の前に を追加します...

次のようなことも試してみてください

less -p '[[:blank:]]+$' infile

これにより、パターン (この場合は末尾の空白) が強調表示されます...

関連情報