我有数据:
7456 7456 0 0 0 2
7463 7463 0 0 1 2
Run Code Online (Sandbox Code Playgroud)
我想添加列标题,所以输出是:
FID IID PAT MAT SEX PHENOTYPE
7456 7456 0 0 0 2
7463 7463 0 0 1 2
Run Code Online (Sandbox Code Playgroud)
我试过了 echo -e "FID\tIID\tPAT\tMAT\tSEX\tPHENOTYPE" | cat file1 > file2
但这是复制原始文件而不是标题。
sed '1i\FID, IID, PAT, MAT, SEX PHENOTYPE' file1 > file2
Run Code Online (Sandbox Code Playgroud)
有错误
sed: 1: "1i\FID, IID, PAT, MAT, ...": extra characters after \ at the end of i command
Run Code Online (Sandbox Code Playgroud)
请问有什么建议吗?
Kus*_*nda 17
你的尝试
echo -e "FID\tIID\tPAT\tMAT\tSEX\tPHENOTYPE" | cat file1 > file2
Run Code Online (Sandbox Code Playgroud)
几乎可以正常工作,但cat
不会对其标准输入(包含实际标题)做任何事情。以下将起作用:
echo -e "FID\tIID\tPAT\tMAT\tSEX\tPHENOTYPE" | cat - file1 > file2
Run Code Online (Sandbox Code Playgroud)
cat
将解释-
为标准输入,并echo
在添加file1
.
替代:
{ echo -e "FID\tIID\tPAT\tMAT\tSEX\tPHENOTYPE"; cat file1; } >file2
Run Code Online (Sandbox Code Playgroud)
或者
( echo -e "FID\tIID\tPAT\tMAT\tSEX\tPHENOTYPE"; cat file1 ) >file2
Run Code Online (Sandbox Code Playgroud)
Jar*_*era 14
这个 GNUsed
将文本添加为文件的第一行:
sed -i '1i FID IID PAT MAT SEX PHENOTYPE' test.txt
Run Code Online (Sandbox Code Playgroud)