sed -n '$='是不是
计算一行中的单词
它会打印文件中最后一行的行号.所以它计算文件中的行数.
这可以计算每行中的尾随空格.(如果你想要它们的总和,那真的很容易.)
awk '{t=length($0);sub(" *$","");print t-length($0)}' file
Run Code Online (Sandbox Code Playgroud)
例如,我有一个文件(命名为f),内容如下,(结尾的"点"不存在,仅用于显示尾随空格).
aaaaa .
bbbbb .
ccccc .
Run Code Online (Sandbox Code Playgroud)
上面的awk单线程:
kent$ awk '{t=length($0);sub(" *$","");print t-length($0)}' f
5
4
3
Run Code Online (Sandbox Code Playgroud)
编辑
因为这sed是解决这个问题的必要条件(我不明白为什么,除非它是一个功课).这行适合您的需要,请注意,GNU Sed是必需的:
kent$ sed -r 's/(.*\S)( *$)/expr length "\2"/ge' f
5
4
3
Run Code Online (Sandbox Code Playgroud)
sed用过了expr不能算作工具吧?它可以被称为"单独的sed"解决方案吗?我刚刚看到你的问题中的更新,如果你只想打印带尾随空格的行,那就更容易了:( IMO,grep将是最好的工具)
sed -n '/ \+$/p' file
Run Code Online (Sandbox Code Playgroud)
会做.