关于sed的问题???????

arch=hello
echo -ne $arch | sed 's/^(.).*/\1/g'
麻烦同学们 这里的sed能详细解释下吗?

1个回答

sed 就不用看了
大概解释下参数吧
s/pattern1/pattern2/g
这里 s 指 replace
pattern1, 被替换的目标模式 (对应这里,就是 ^(.).* ) 因为sed中括号需要进行转移表示组
pattern2, 替换的目标模式, 这里是 pattern1 中的group1

g 指global
因为sed是一行行操作的,所以g是指这一行中符合pattern1全部都需要替换。
如果没有g, 就替换一行中的一个符合pattern1的match

综上,也就是说 扫描一行,会查找到所有符合模式^(.).*的模式然后替换成(.)中match的内容。

感觉是把每行替换成首字符呢?
手头没有环境,不然就跑下试试了

shabulajiHEHE
qdanne 那前面的()就是用来分组的对吧?
7 年多之前 回复
lykm20
lykm20 \1 就是 group 1 类似的java的正则中也有group 1 这种,不过写法好像是$1.
7 年多之前 回复
shabulajiHEHE
qdanne 感觉是把每行替换成首字符呢-对滴 那那个\1是啥意思呢?
7 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!