次の表があります。
BB1520_v1.0_0103エクソン3329 3601 BB1520_v1.0_0103エクソン3650 4040 BB1520_v1.0_0089 エクソン 1862 BB1520_v1.0_0089エクソン1312 1357 BB1520_v1.0_0089エクソン1423 1531 BB1520_v1.0_0084エクソン5196 5283
列1の値で行を抽出して3つの異なるファイルに保存したいと思います。
成功せずに次のコードを試してみました。
awk -F, '{print >$1".txt"}' file.txt
答え1
正しいアプローチがありますが、カンマ(-F,
)ではなくスペースにフィールドを分割する必要があります。あなたの質問は、「行は最初の列と同じ名前のファイルに保存する必要があります」と解釈されます。
$ cat file.txt
BB1520_v1.0_0103 exon 3329 3601
BB1520_v1.0_0103 exon 3650 4040
BB1520_v1.0_0089 exon 1 862
BB1520_v1.0_0089 exon 1312 1357
BB1520_v1.0_0089 exon 1423 1531
BB1520_v1.0_0084 exon 5196 5283
$ awk '{ print >$1".txt"}' file.txt
$ cat BB1520_v1.0_0103.txt
BB1520_v1.0_0103 exon 3329 3601
BB1520_v1.0_0103 exon 3650 4040