Quão longe
awk -F"~" '{print >> ("Src_" $5 ".txt")}' file
você? Você pode precisar fechar os arquivos de saída se chegar perto do número máximo de arquivos abertos permitidos.
Eu tenho um arquivo de texto com 6 campos delimitados por ~
. Eu preciso escrever as linhas para vários novos arquivos cujos nomes são baseados no campo 5 da linha, de tal forma que todas as linhas com o mesmo campo 5 terminam no mesmo arquivo. Por exemplo, todas as linhas com foo
no quinto campo devem acabar em 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-
WatchListEntry_20180820_DLY_0.dat~3~NA~USD~AMLCOMP~2018-08-20
WatchListEntry_20180820_DLY_99.dat~3~NA~USD~AMLDW~2018-08-20
WatchListEntry_20180820_DLY_2.dat~3~NA~USD~CBNABI~2018-08-20
BackOfficeTransaction_20180820_DLY_1.dat~5~0~USD~CBNABI~2018-08-20
Quão longe
awk -F"~" '{print >> ("Src_" $5 ".txt")}' file
você? Você pode precisar fechar os arquivos de saída se chegar perto do número máximo de arquivos abertos permitidos.
Tente isto:
for i in 'cat file.txt'
do
File='echo $i | awk -F '~' '{print "Src_"$5".txt"}''
echo "$i" >> $File
done
file.txt
linha por linha para for
loop. Src_
como prefixo e .txt
como o sufixo para declará-lo como nome de arquivo Tags text-processing scripting