Linux 文件编辑-命令行unix

Linux 文件编辑-命令行unix,linux,file,unix,sed,Linux,File,Unix,Sed,我想从命令行编辑一个文件,因为在vim或其他编辑器中打开它需要很长时间(一个大文件)。我想在没有用#注释掉的每一行的开头添加一个字符串('chr')。我使用的命令如下: cat '/home/me/37.vcf' | sed s/^/chr/>'sp.vcf' 但它会在每行的开头添加一个chr,在每行的结尾添加一个>。我不想发生这两件事。 有人能给我一些建议来提高我的成绩吗 您可以在sed命令中发现语法错误。使用此语法正确的sed命令: sed -E 's/^([^#]|$)/chr/'

我想从命令行编辑一个文件,因为在vim或其他编辑器中打开它需要很长时间(一个大文件)。我想在没有用#注释掉的每一行的开头添加一个字符串('chr')。我使用的命令如下:

cat '/home/me/37.vcf' | sed s/^/chr/>'sp.vcf'
但它会在每行的开头添加一个chr,在每行的结尾添加一个>。我不想发生这两件事。
有人能给我一些建议来提高我的成绩吗

您可以在sed命令中发现语法错误。使用此语法正确的sed命令:

sed -E 's/^([^#]|$)/chr/' /home/me/37.vcf > sp.vcf
或在Linux上:

sed -r 's/^([^#]|$)/chr/' /home/me/37.vcf > sp.vcf

您可以在sed命令中发现语法错误。使用此语法正确的sed命令:

sed -E 's/^([^#]|$)/chr/' /home/me/37.vcf > sp.vcf
或在Linux上:

sed -r 's/^([^#]|$)/chr/' /home/me/37.vcf > sp.vcf

要仅将替换应用于不以
#
开头的行,请执行以下操作:


注意:命令
cat
用于连接文件,在这里没有用处

仅对不以
开头的行应用替换:

注意:命令
cat
用于连接文件,在这里没有用处

这可能适合您(GNU-sed):

这可能适用于您(GNU-sed):


它不会在空行上添加
chr
。不确定OP是否希望这样。它不会在空行上添加
chr
。不确定OP是否希望这样。