我正在尝试在原始行之后插入行的修改副本。
这是我的文件:
random
N:John Doe
random
N:Jane Roe
random
random
N:Name Sirname
random
这是我的文件需要的样子:
random
N:John Doe
FN:John Doe
random
N:Jane Roe
FN:Jane Roe
random
random
N:Name Sirname
FN:Name Sirname
random
对此有什么想法吗?似乎找不到合适的 sed/awk 组合...
最佳答案
sed -n ' p; s/^N:/FN:/p' original.txt
这会产生:
random
N:John Doe
FN:John Doe
random
N:Jane Roe
FN:Jane Roe
random
random
N:Name Sirname
FN:Name Sirname
random
它的工作原理如下。我们调用 sed -n
这意味着,默认情况下,它不会打印任何行。然后,我们给它两个命令。第一个 p
是打印现有行未修改。第二个,s/^N:/FN:/p
,告诉它尝试用 FN:
替换任何前导的 N:
,并且,如果替换成功(意味着该行确实以 N:
开头),则也打印修改后的版本。
关于bash - 行 sed/awk 的修改副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21492559/