Извлеките данные пары "ключ-значение" из файла avro в виде строк и столбцов с помощью команды/скрипта оболочки unix

Без обращения к остальной части скрипта, чтобы пропустить файлы, оканчивающиеся на «.xls»:

[[ $f =~.xls$ ]] && continue

Или, если вам не нравится такой синтаксис:

case "$f" in
  (*.xls) continue;;
esac

Или, если вам не нравится этот синтаксис:

shopt -s extglob
for f in /mnt/dir1/dir2/$CITY/!(*.xls)
do
  : etc
done
0
20.08.2019, 20:51
3 ответа

Пробовал с помощью приведенной ниже команды, все работает нормально

команда

awk -F ":" '{print $3,$NF}' p.txt| sed 's/"\}*//g'| sed "s/,NAME/|/g"| sed -r "s/\s+//g"| sed '1i table|NAME'

выход

table|NAME
ABC|A

ABC|A

ABC|B

ABC|A

ABC|B
-1
28.01.2020, 05:04
$ { echo 'table|NAME'; jq -r '"\(.table.string)|\(.NAME.string)"' file; }
table|NAME
ABC|A
ABC|A
ABC|B
ABC|A
ABC|B

Это использует jqдля анализа данных из каждого объекта JSON, создавая строку для каждой строки вывода, которая содержит имя таблицы и строку NAME, найденную в объекте.

Заголовок создается с помощью простого echo.

0
28.01.2020, 05:04

Другой ответ jq:

{ echo 'table|NAME'; <file jq -r 'map(.string)|join("|")'; }

, который использует преимущества функции mapдля объединения объектов tableи NAMEи joinдля объединения обеих строк строк объектов.


Основываясь на последнем обновлении вопроса OP, вам понадобится эта команда (требуется версия jq> = 1.5):

<file jq -r 'keys_unsorted,map(.string)|join("|")'
0
28.01.2020, 05:04

Теги

Похожие вопросы