как получить 2-е поле первой строки текстового файла с разделителем трубы, сохраненного в hfds, через скрипт оболочки - PullRequest
0 голосов
/ 30 мая 2018

Я новичок в командах Unix.У меня есть тестовый файл с разделителями трубы в hdfs.Я хочу получить второе поле первой строки из файла через скрипт оболочки и сохранить его в переменной.Чтобы прочитать первую строку, я использовал следующую команду, но она показывает ошибку -head unknown command

line=$(hadoop fs -head -n 1 $new_file)

Я знаю, что для захвата второго поля строки мы можем использовать

y=$(echo $x | awk '{print $2}')

echo $y

, где yбудет первая строка файла

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

это должно сделать ...

$ var="$(awk -F'|' '{print $2; exit}' file)"

извлечет второе поле из первой строки.

0 голосов
/ 30 мая 2018

Только второе поле первой строки поможет вам.Поэтому я использую exit, чтобы была прочитана только первая строка, и она не должна читать все строки Input_file.

variable=$(awk -F"|" 'FNR==1{print $2;exit}' Input_file)

Объяснение приведенного выше кода:

variable=$(..): Создаем переменную с именем variable, и она имеет команду для получения 2-го поля 1-й строки, и она будет хранить в ней свое значение.

awk 'Объяснение здесь:

-F"|": установка разделителя полей для строк.

FNR==1: проверка, является ли строка первой строкой.

print $2: печать второйполе первой строки.

exit: выход не будет читать дальше файл и сэкономит наше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...