テキストファイルに末尾のスペースを表示するには?

テキストファイルに末尾のスペースを表示するには?

テキストファイルの末尾のスペースを印刷して表示できるようにしたい(削除できず、表示のみ)。

印刷されていない文字を表示するためにこれを使用しようとしましたが、期待どおりにcat -v表示されません(行間に視覚的な違いはありません)。例えば

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

git diffスペースを印刷/表示するとは、他の行や特殊文字、色(表示ファイルを使用するときなど)に比べて末尾のスペースが存在するという視覚的な人間の表示を意味します。

別の方法がありますか?


注:私はmacOS Sierraを使用していますが、GNUおよびBSDcatコマンドにアクセスできます。

$ 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

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

おすすめ記事