Linuxシステムには1000個のテキストファイルがあり、各テキストファイルの名前にはプレフィックス(OG00
*)があり、9個の一意のIDが含まれています。テキストファイル名で各IDのテキストファイルを作成したいと思います。OG0012637_1.txt, OG0012637_2.txt, OG0012637_3.txt, OG0012637_4.txt, OG0012637_5.txt....OG0012637_9.txt
Input:
$ cat OG0012637.txt
TRINITY_DN9932_c0_g2_i1.p1
TRINITY_DN17663_c0_g1_i1.p1
TRINITY_DN6645_c0_g1_i2.p1
TRINITY_DN2462_c0_g1_i2.p1
TRINITY_DN19713_c3_g1_i2.p1
TRINITY_DN4587_c0_g1_i1.p1
TRINITY_DN4405_c0_g1_i1.p1
TRINITY_DN7191_c1_g2_i1.p1
TRINITY_DN1740_c0_g1_i2.p1
必須出力ファイル:
$ cat OG0012637_1.txt
TRINITY_DN9932_c0_g2_i1.p1
$ cat OG0012637_2.txt
TRINITY_DN17663_c0_g1_i1.p1
$ cat OG0012637_3.txt
TRINITY_DN6645_c0_g1_i2.p1
$ cat OG0012637_4.txt
TRINITY_DN2462_c0_g1_i2.p1
$ cat OG0012637_5.txt
TRINITY_DN19713_c3_g1_i2.p1
$ cat OG0012637_6.txt
TRINITY_DN4587_c0_g1_i1.p1
$ cat OG0012637_7.txt
TRINITY_DN4405_c0_g1_i1.p1
$ cat OG0012637_8.txt
TRINITY_DN7191_c1_g2_i1.p1
$ cat OG0012637_9.txt
TRINITY_DN1740_c0_g1_i2.p1
ベストアンサー1
これらの作業用に作成されたツール/ユーティリティは次のとおりです。分ける。このGNU
バージョンにはユースケースに適したオプションがあります。
for f in OG00*.txt; do
split -l1 -a1 -e --additional-suffix=.txt --numeric-suffixes=1 "$f" "${f%????}_"
done
出力
.
├── OG0012637_1.txt
├── OG0012637_2.txt
├── OG0012637_3.txt
├── OG0012637_4.txt
├── OG0012637_5.txt
├── OG0012637_6.txt
├── OG0012637_7.txt
├── OG0012637_8.txt
├── OG0012637_9.txt
└── OG0012637.txt
-l1
ファイルは1行に1つずつ分割する必要があります。-a1
処理する生成ファイルは9つしかないため、数字の長さは1桁にしてください。--numeric-suffixes
出力ファイルの番号は、デフォルト値0ではなく1から始まる必要があります。--additional-suffix
デフォルトでは、何も追加せずに.txtを出力ファイルに追加する必要があります。- 接頭辞は、デフォルトの xa ではなく、下線付きのベース名です。