У меня есть следующие столбцы:
_111_ [555]
_222_ [666]
_333_ [777]
_444_ [888]
Я хочу получить доступ к 111 из _111_
. или 888 из [888]
.
Как получить доступ к элементам полей с помощью awk
.
попробуйте это:
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 руководство, где Вы можете, нашел больше деталей.
Если у Вас есть те данные в Доступе файла 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.