我的问题可能相当简单。我正在尝试替换文件中行开头的字符串序列。例如,我想将模式“GN”的任何实例替换为“N”,或将“WR”替换为“R”,但前提是它们是该行的前 2 个字符。例如,如果我有一个包含以下内容的文件:
WRONG
RIGHT
GNOME
Run Code Online (Sandbox Code Playgroud)
我想转换这个文件以给出
RONG
RIGHT
NOME
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用以下内容来替换上述示例的任何实例;
sed -i 's/GN/N/g' file.txt
sed -i 's/WR/R/g' file.txt
Run Code Online (Sandbox Code Playgroud)
问题是我希望仅当上述模式是任何给定行中的前 2 个字符时才会发生这种情况。可能是一个 IF 语句,尽管我不确定条件会是什么样子。任何正确方向的指示将不胜感激,谢谢。
只需添加扬抑符,删除 g 后缀(不必要,因为您最多需要一个替换),您也可以将它们组合在一个脚本中。
sed -i 's/^GN/N/;s/^WR/R/' file.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6876 次 |
| 最近记录: |