aaaaaaaaa
bbbbbbbbb
-th ccccccccc_RD \
DDDDDDDD
FFFFFFFF
-th GGGGGGG_RD \
Run Code Online (Sandbox Code Playgroud)
使用 sed/grep/awk 等,在上面的文本中,如果一行以 "RD \" 结尾,请将行首的 "-th" 替换为 "-to"。期望的输出:
aaaaaaaaa
bbbbbbbbb
-to ccccccccc_RD \
DDDDDDDD
FFFFFFFF
-to GGGGGGG_RD \
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏。
这应该有效:
sed 's/^-th\(.*RD \\\)/-to\1/' foo.txt
Run Code Online (Sandbox Code Playgroud)
这有点复杂,因为它\
是一个特殊字符,需要转义。由于转义是\
自己完成的,匹配文字的方式\
是\\
. 的\(
和\)
在那里捕获匹配的模式,然后将其称为\1
在置换。
Perl 中的语法更简单,因为不需要对括号进行转义:
perl -pne 's/^-th(.*RD \\)/-to$1/' foo.txt
Run Code Online (Sandbox Code Playgroud)
在 awk 你会这样做:
awk '/RD \\$/{$1="-to"}{print}' foo.txt
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1299 次 |
最近记录: |