我想从命令行编辑一个文件,因为在 vim 或其他编辑器中打开它需要很长时间(一个大文件)。我想在每行的开头添加一个字符串('chr'),而不是用 # 注释掉。我正在使用的命令是这样的:
cat '/home/me/37.vcf' | sed s/^/chr/>'sp.vcf'
但它会在每一行的开头添加一个 chr,在每一行的末尾添加一个 >。我不希望这两种情况发生。任何人都可以提供任何建议来改善我的结果吗?
要将替换仅应用于不以 a 开头的行#
:
sed '/^[^#]/s/^/chr/' file > output
注意:该命令cat
用于连接文件,此处无用。
您可以在 sed 命令中出现语法错误。使用这个语法正确的 sed 命令:
sed -E 's/^([^#]|$)/chr/' /home/me/37.vcf > sp.vcf
或者在 Linux 上:
sed -r 's/^([^#]|$)/chr/' /home/me/37.vcf > sp.vcf
这可能对您有用(GNU sed):
sed '/^\s*#/!s/^/chr/' file > new_file