Ste*_* B. 17 sed regular-expression
是否可以在一个班轮中完成?
我有这样的输出:
"First line" - Description
" Second line" - Description
"Third line" - Description
" Fourth line" - Description
Run Code Online (Sandbox Code Playgroud)
此输入是自动生成的。
我想用每行的(引号)替换第一次出现的"
(引号+空格)"
。如果我在全局范围内应用替换,它也会更改line" -
to 的每次出现line"-
,所以我想知道是否可以使用 sed one liner 来完成此操作。
我已经尝试使用^
这样的
sed -r ':a;N;$!ba;s/(\^\" )/\"/g'
Run Code Online (Sandbox Code Playgroud)
但它不起作用,它不能代替任何东西。我试过
sed -r ':a;N;$!ba;s/(^|\" )/\"/g'
Run Code Online (Sandbox Code Playgroud)
它替换了所有的出现。我刚刚开始使用 sed,所以我真的不知道我做错了什么。
我在这里缺少什么?
gee*_*aur 35
你多虑了。 sed
默认情况下仅替换一行中的第一个实例(不带/g
修饰符),尽管您仍然想要锚定,因为您不想要行中的第一个实例而不是行首的实例;并且您通常不需要您尝试使用的显式线条操作(为什么?)。
sed 's/^" /"/'
Run Code Online (Sandbox Code Playgroud)
一个更一般的答案,因为我无法评论 geekosaur 的答案 - 你不会放置 ^ (行锚点的开头)。例如,如果您想用 B 替换第一次出现的 A,您可以
sed 's/A/B/'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46805 次 |
最近记录: |