。~
たとえば、foo
5番目のフィールドのすべての行はで終わる必要がありますSrc_foo.txt
。
入力サンプル
WatchListEntry_20180820_DLY_0.dat~3~NA~USD~AMLCOMP~2018-08-20~
WatchListEntry_20180820_DLY_2.dat~3~NA~USD~CBNABI~2018-08-20~
WatchListEntry_20180820_DLY_99.dat~3~NA~USD~AMLDW~2018-08-20~
BackOfficeTransaction_20180820_DLY_1.dat~5~0~USD~CBNABI~2018-08-
サンプル出力
Src_AMLCOMP.txt
WatchListEntry_20180820_DLY_0.dat~3~NA~USD~AMLCOMP~2018-08-20
Src_AMLDW.txt
WatchListEntry_20180820_DLY_99.dat~3~NA~USD~AMLDW~2018-08-20
Src_CBNABI.txt
WatchListEntry_20180820_DLY_2.dat~3~NA~USD~CBNABI~2018-08-20
BackOfficeTransaction_20180820_DLY_1.dat~5~0~USD~CBNABI~2018-08-20
答え1
どのくらい行くのでしょうか?
awk -F"~" '{print >> ("Src_" $5 ".txt")}' file
わかりますか?許可されているオープンファイルの最大数に近い場合は、出力ファイルを閉じる必要があります。
答え2
この試み:
for i in `cat file.txt`
do
File=`echo $i | awk -F '~' '{print "Src_"$5".txt"}'`
echo "$i" >> $File
done
file.txt
内容を1行ずつfor
ループに渡します。- 5番目のフィールドを抽出し、
Src_
プレフィックスと.txt
サフィックスとして使用してファイル名で宣言します。 - その後、コンテンツをファイルに渡します。