列にヘッダーを追加する方法 [重複]

列にヘッダーを追加する方法 [重複]

私はデータを持っています:

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-出力は標準入力として解釈され、追加されたコンテンツの前に挿入されます。echofile1

代替:

{ echo -e "FID\tIID\tPAT\tMAT\tSEX\tPHENOTYPE"; cat file1; } >file2

または

( echo -e "FID\tIID\tPAT\tMAT\tSEX\tPHENOTYPE"; cat file1 ) >file2

おすすめ記事