gpt4 book ai didi

bash - 如何使用 "sed or awk"从 bash 中的行中删除最后一个逗号

转载 作者:行者123 更新时间:2023-11-29 09:07:06 34 4
gpt4 key购买 nike

您好,我想从一行中删除最后一个逗号。例如:

输入:

This,is,a,test

期望的输出:

This,is,a test

如果最后一个逗号也是字符串的最后一个字符,我可以使用以下命令删除最后一个逗号:(但这不是我想要的)

echo "This,is,a,test," |sed 's/,$//'
This,is,a,test

如果一行中的最后一个逗号之后有更多字符,则相同的命令将不起作用。

echo "This,is,a,test" |sed 's/,$//'
This,is,a,test

我能够通过调用多个命令使用肮脏的方式实现结果,使用 awk 或 sed regex 实现相同结果的任何替代方法?(这就是我想要的)

echo "This,is,a,test" |rev |sed 's/,/ /' |rev
This,is,a test

最佳答案

$ echo "This,is,a,test" | sed 's/\(.*\),/\1 /'
This,is,a test

$ echo "This,is,a,test" | perl -pe 's/.*\K,/ /'
This,is,a test

在这两种情况下,.* 将尽可能匹配,因此只会更改最后一个逗号。

关于bash - 如何使用 "sed or awk"从 bash 中的行中删除最后一个逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39285636/

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