В центос:
cp *.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust extract
Используйте csvtool
¹:
csvtool -t ' ' -u ' ' namedcol how,are file
-t Input separator char.
-u Output separator char.
namedcol <names>
Assuming the first row of the CSV file is a list of column headings,
this returned the column(s) with the named headings.
¹sudo apt install csvtool
С помощью awk
вы можете проверить первую строку на соответствие ключевым словам, записать номер столбца, а затем распечатать соответствующие значения:
#first line -> Select columns based on keyword
NR==1 {
for (i = 1; i <= NF; i++) {
if ( $i == "how" ) {col_how=i}
if ( $i == "are" ) {col_are=i}
}
}
#print selected columns including header line
NR>=1 {
print $col_how, $col_are
}
Сохранить как, например. script.awk
и выполните
awk -f script.awk datafile
РЕДАКТИРОВАТЬ:
Кроме того, ваша идея транспонирования и grep
ing может быть легко реализована:
datamash transpose <datafile | grep 'how\|are' | datamash transpose
используйте -t ' '
для определения пробелов в качестве разделителей. Тем не менее, для очень длинных файлов это может привести к ограничению оперативной памяти. Однако может быть не установлен по умолчанию на большинстве машин.
$ cat tst.awk
BEGIN {
cols = (cols == "" ? "how are" : cols)
nf = split(cols,tgts)
FS = OFS = "\t"
}
NR==1 {
for (i=1; i<=NF; i++) {
f[$i] = i
}
}
{
for (i=1; i<=nf; i++) {
printf "%s%s", $(f[tgts[i]]), (i<nf ? OFS : ORS)
}
}
.
$ awk -f tst.awk file
how are
3 4
8 9
.
$ awk -v cols='are world you Hello' -f tst.awk file
are world you Hello
4 2 5 1
9 7 0 6