[sed] 一道追加字符的sed题?

发布于 2022-10-15 09:15:26 字数 461 浏览 18 评论 0

Passwd.txt的内容如下:
AC456
AC492169
AC9967
AC88345
要往Passwd.txt每行的末尾加入passwd,我知道命令如下:
cat Passwd.txt | sed 's/[0-9][0-9]*/&  passwd/g'
结果如下:
AC456 Passwd
AC492169 Passwd
AC9967 Passwd
AC88345 Passwd
我的问题是:这里为什么要写两个[0-9],写一个[0-9]的效果如下:
PasswdA PasswdC456 Passwd
PasswdA PasswdC492169 Passwd
PasswdA PasswdC9967 Passwd
PasswdA PasswdC88345 Passwd
不理解?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

并安 2022-10-22 09:15:26

*是重复前面一个0到无数次
多写一个 保证至少有一个数字

橘和柠 2022-10-22 09:15:26

回复 1# qiuzugen

深海少女心 2022-10-22 09:15:26

用\+,不用*

天生の放荡 2022-10-22 09:15:26

本帖最后由 where27 于 2011-04-19 10:47 编辑

[0-9]*   任意个数字(0个或多个)
[0-9]+   一个以上的数字
[0-9]?   0个或一个数字

不过?是扩展的正则表达式里才有的,sed里需要加上-r来支持扩展的正则

从此见与不见 2022-10-22 09:15:26

首先你这样并不能实现修改文本的目的
应该是:
sed -i 's/$/ passwd/g' passwd.txt

其中option: -i 表示可以修改文本的内容

孤檠 2022-10-22 09:15:26

sed 's/[0-9][0-9]\+/&  passwd/g' Passwd.txt

天煞孤星 2022-10-22 09:15:26

回复 6# spanthrive

    太谢谢了,我一直没有真正理解-i 这个参数,现在理解了~

∝单色的世界 2022-10-22 09:15:26

sed 's/[0-9][0-9]\+/&  passwd/g' Passwd.txt
jscmc2004 发表于 2011-04-19 16:18

    这方法不错啊,不过要-r吧,这样+也不用转义了
我觉得-r是好习惯,一堆转义往往导致sed有的东西可读性太差,不过吓唬不懂unix的人倒是蛮不错,呵呵

芸娘子的小脾气 2022-10-22 09:15:26

一堆转义的东西,弄的很难读

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文