доступ к элементу поля через awk

У меня есть следующие столбцы:

_111_   [555]
_222_   [666]
_333_   [777]
_444_   [888]

Я хочу получить доступ к 111 из _111_. или 888 из [888].

Как получить доступ к элементам полей с помощью awk.

2
задан 21 July 2014 в 15:58

2 ответа

попробуйте это:

  awk '{gsub("_|\\[|\\]","",$0); print $1 "-" $2;}' prova.txt

awk читают каждую строку и использование "" (пробел), поскольку разделитель полей, gsub удаляют символы: '_'' ['']', таким образом, 1$ и 2$ будут, содержит маркер без undesiderable символа.

Этот сценарий произведет:

  111-555 
  222-666 
  333-777 
  444-888

Если Вы получили бы доступ точно _111_ и [8888] как первый маркер и последний маркер, попробуйте это:

  awk '{gsub("_|\\[|\\]","",$0);if (NR == 1) print $1;}END{print $2}' prova.txt

В этом случае вывод будет:

 111
 888

Вот awk руководство, где Вы можете, нашел больше деталей.

1
ответ дан 21 July 2014 в 15:58

Если у Вас есть те данные в Доступе файла file.txt

111 как,

cat file.txt | tr -d "[]_" | awk 'NR==1 {print $1}'

Доступ 888 как,

cat file.txt | tr -d "[]_" | awk 'NR==4 {print $2}'

приблизительно доступ к полевым элементам с awk.

1
ответ дан 21 July 2014 в 15:58

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

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