私はデータを持っています:
7456 7456 0 0 0 2
7463 7463 0 0 1 2
出力が次のように列ヘッダーを追加したいと思います。
FID IID PAT MAT SEX PHENOTYPE
7456 7456 0 0 0 2
7463 7463 0 0 1 2
頑張りましたecho -e "FID\tIID\tPAT\tMAT\tSEX\tPHENOTYPE" | cat file1 > file2
ただし、これはヘッダーではなく元のファイルをコピーします。
sed '1i\FID, IID, PAT, MAT, SEX PHENOTYPE' file1 > file2
間違った
sed: 1: "1i\FID, IID, PAT, MAT, ...": extra characters after \ at the end of i command
どんな提案がありますか?
ベストアンサー1
あなたの試み
echo -e "FID\tIID\tPAT\tMAT\tSEX\tPHENOTYPE" | cat file1 > file2
ほとんど動作しますが、cat
標準入力(実際のヘッダーを含む)では何もしません。以下が機能します。
echo -e "FID\tIID\tPAT\tMAT\tSEX\tPHENOTYPE" | cat - file1 > file2
cat
-
出力は標準入力として解釈され、追加されたコンテンツの前に挿入されます。echo
file1
代替:
{ echo -e "FID\tIID\tPAT\tMAT\tSEX\tPHENOTYPE"; cat file1; } >file2
または
( echo -e "FID\tIID\tPAT\tMAT\tSEX\tPHENOTYPE"; cat file1 ) >file2