gpt4 book ai didi

linux - 计算尾随空格

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:46 24 4
gpt4 key购买 nike

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

我可以使用 sed -n '$=' 计算一行中的单词数,但是我该如何计算空格和尾随空格?

bash 的新手,所以我很感激能得到的任何帮助,
谢谢

*编辑:*

我必须为此使用 sed 那么如果我只想打印行(带有尾随空格)而不是计算它们呢?

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

sed  '/  /p' space.sed

不确定如何表示两个连续的空格,我会得到一个没有前导空格的文件,这样可以检测到尾随空格。

最佳答案

sed -n '$=' 不是

counting the the words in a line

它打印文件中最后一行的行号。所以它计算文件中的行数。

这可以计算每行中的尾随空格。 (如果你想要它们的总和,那真的很容易。)

 awk '{t=length($0);sub(" *$","");print t-length($0)}' file

例如,我有一个包含以下内容的文件(名为 f),(结尾的“点”不存在,只是为了显示尾随空格)。

aaaaa     .
bbbbb .
ccccc .

使用上面的 awk 单行代码:

kent$  awk '{t=length($0);sub(" *$","");print t-length($0)}' f
5
4
3

编辑

因为 sed 是解决这个问题的必要条件(我不明白为什么,除非它是家庭作业)。此行可满足您的需要,请注意,GNU Sed 是必需的:

kent$   sed -r 's/(.*\S)( *$)/expr length "\2"/ge'  f                                                                                                                        
5
4
3
  • 在上面的sed 行中,只使用了sed expr 不能算作一个工具吧?那么它可以称为“sed 单独”解决方案吗?
  • 无论如何,你是在尝试用锤子拧螺丝。

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

 sed -n '/ \+$/p' file

会做。

关于linux - 计算尾随空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19083488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com