我想从命令行编辑文件,因为在vim或其他编辑器中打开它需要永远(一个大文件)。我想在每个没有用#注释掉的行的开头添加一个字符串('chr')。我正在使用的命令是:
cat '/home/me/37.vcf' | sed s/^/chr/>'sp.vcf'
但它在每行的开头添加了一个chr,并且>到每一行的结尾。我不希望这些事情发生。 有人可以提出任何建议来改善我的结果吗?
答案 0 :(得分:3)
仅将替换应用于不以#
开头的行:
sed '/^[^#]/s/^/chr/' file > output
注意:命令cat
用于连接文件,这里没用。
答案 1 :(得分:0)
您的sed命令中可能出现语法错误。使用这个语法正确的sed命令:
sed -E 's/^([^#]|$)/chr/' /home/me/37.vcf > sp.vcf
在Linux上的OR:
sed -r 's/^([^#]|$)/chr/' /home/me/37.vcf > sp.vcf
答案 2 :(得分:0)
这可能适合你(GNU sed):
sed '/^\s*#/!s/^/chr/' file > new_file