计算尾随空格

Cha*_*rly 0 linux bash sed

我需要帮助创建一个sed脚本,使用该sed命令计算尾随空格.

我可以通过使用来计算一行中的单词,sed -n '$='但是我如何为空格和尾随空格执行此操作?

新的,bash所以我感谢任何帮助,
谢谢

*编辑:*

我必须使用sed这个,所以如果我只想打印行(带有尾随的空格)而不是计算它们?

我可以使用p并执行此操作:

sed  '/  /p' space.sed
Run Code Online (Sandbox Code Playgroud)

不知道如何表示两个连续的空格,我会有一个没有前导空格的文件,所以这会检测到尾随空格.

Ken*_*ent 5

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行中,只sed用过了expr不能算作工具吧?它可以被称为"单独的sed"解决方案吗?
  • 无论如何,你试图用锤子拧螺丝.

我刚刚看到你的问题中的更新,如果你只想打印带尾随空格的行,那就更容易了:( IMO,grep将是最好的工具)

 sed -n '/ \+$/p' file
Run Code Online (Sandbox Code Playgroud)

会做.