строка разделения с awk и разделителем

у меня есть файл журнала как:

1::
10::
127.0.0.1
172.17.1.1

я хочу, чтобы awk разделил строку к столбцам на:: разделитель. некоторая вещь как:

awk {print$1}

и результат:

1

и

awk {print$2}

и результат:

10

и

awk {print$3}

и результат:

127.0.0.1
172.17.1.1

я не знаю как разделенный с awk с разделителем::.

2
задан 21 March 2014 в 12:43

1 ответ

Можно установить разделителя полей с помощью -F опция. Используйте следующие команды в терминале,

$ awk -F "::" 'NR==1 {print $1}' logfile.txt 
1
$ awk -F "::" 'NR==2 {print $1}' logfile.txt 
10
$ awk -F "::" 'NR!=1 && NR!=2 {print $1}' logfile.txt
127.0.0.1
172.17.1.1

NR , переменная хранит номер строки. Например, рассмотрите свой файл, с :: как разделитель полей

        $1          $2        $3
NR=1    1
NR=2    10
NR=3    127.0.0.1
NR=4    172.17.1.1

and so on.

, Если Вы будете использовать . в качестве разделителя полей, то это будет похоже,

        $1          $2        $3     $4
NR=1    1::
NR=2    10::
NR=3    127         0          0      1
NR=4    172         17         1      1
7
ответ дан 8 October 2019 в 10:56

Другие вопросы по тегам:

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