Я получаю несколько файлов, и мне нужно извлечь определенные поля из всех этих файлов.Два типа файлов, которые я получаю в качестве входных данных, пример содержимого ниже:
Файл 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\|/..
Надеюсь, мне ясно.Спасибо!