Структура моей папки выглядит следующим образом:
$ tree
.
├── Original_folder
│ └── cat.txt
├── folderCD
│ └── cat.txt
├── folderGK
│ └── cat.txt
├── folderFE
└── cat.txt
Мой файл cat.text
выглядит следующим образом
Version LRv1.10.0
Build date 2017-12-06
MOL-calc
PRESSURE
!
Time[s] InletT[K] InletP[Pa] O2_GasOut C_GasOut
100 0.001885 1070000 0.0007 0.2111
200 0.050885 1005000 0.0056 0.2171
50 0.010885 1200000 0.0855 0.2411
and so on....
Как извлечь значение столбца с ключевым словом в заголовке столбца "_GasOut" для Время [с] = 200? Как извлечь те же данные из всех этих файлов cat.txt и создать новый текстовый файл, как этот .....
Folder Time[s] O2_GasOut C_GasOut
Original_folder 200 0.0007 0.2111
FolderCD 200 0.0007 0.2111
FolderGK 200 0.0056 0.2171
FolderFE 200 0.0855 0.2411
До сих пор я пытался получить столбец с заголовком "_GasOut"
.
gawk -F Но это не печать столбцов f. И я не знаю, как действовать дальше. Я хотел иметь новый файл (желаемый выходной текстовый файл), чтобы я мог построить все столбцы на отдельных графиках вместе с именами папок по оси X. Я добавил один из файлов cat.txt для справки. https://1drv.ms/t/s!Aoomvi55MLAQh1wMmpnPGnliFmgg
\t' '
/_GasOut/{
for(f=1;f<=NF;f++){
# $a ~ "B" matches if string B is part of field $a
# only these elements are taken to array colhdr
if ($f ~ "_GasOut") colhdr[f]=$f
print $f
}
}
Но это не печать столбцов f. И я не знаю, как действовать дальше. Я хотел иметь новый файл (желаемый выходной текстовый файл), чтобы я мог построить все столбцы на отдельных графиках вместе с именами папок по оси X. Я добавил один из файлов cat.txt для справки. https://1drv.ms/t/s!Aoomvi55MLAQh1wMmpnPGnliFmgg
Попробуйте,
awk '
FNR==6 { for (n=1;n<=NF;n++) { if ($n ~ /_GasOut$/) cols[$n]=n; } }
NR==6 {
# print header
printf "Folder Time[s]"
for (c in cols) {
printf " "c
}
printf "\n"
}
$1==200 {
# extract foldername
match(FILENAME, /^[^/]*/, folder);
# print columns
printf folder[0]" "$1
for (c in cols) {
printf " "$cols[c]
}
printf "\n"
}
' */cat.txt | column -t -s' '
Вывод:
Folder Time[s] O2_GasOut C_GasOut
folderCD 200 0.0056 0.2171
folderFE 200 0.0056 0.2171
folderGK 200 0.0056 0.2171
Original_folder 200 0.0056 0.2171
(я просто помещаю один и тот же файл во все папки, поэтому X_GasOut одинаков для каждой строки)
column
необязательна, чтобы сделать хороший вывод.