我收到多个文件,我需要从所有这些文件中提取某些字段。 我收到两种文件作为输入,下面是示例内容:
文件1
Line 1: ST*835*0001~
Line 2: ABC*I*K*KI*330.33*C*AED*CCP*01*071000013*DA*645906447*1752578509
文件2
Line 1 : ST|835|0103~
Line 2 : ABC|I|330.33|C|01|
下面是我的脚本,
for file in "$SEARCH_DIR"/*; do
recamt=$(awk -F'[|*]' '/ABC/{print $4}' $file)
echo " $recamt " >> $logFile
done
我需要基于330.33
打印值ABC
,但是由于各列有所不同(文件1在列4上,文件2在列3上),所以没有得到预期的输出。我该如何实现?谢谢!
我还有另一个awk
,其用法如下
filedate=$(awk -F'*' '/\*HP\*IRX\*/ {print $5}' $file)
如何为awk -F"|"
和"*"
添加附加条件,但要搜索"'/\*HP\*IRX\*/"
和"'/\|HP\|IRX\|/..
,希望我明白。谢谢!
答案 0 :(得分:0)
这里是单线:
awk -F'[|*]' '{if($3==330.33) print "/ABC/"$3}' ./* >> logFile