我有以下列:
_111_ [555]
_222_ [666]
_333_ [777]
_444_ [888]
我想访问111来自_111_
. 或888从[888]
。
如何使用访问字段元素awk
。
答案1
尝试这个:
awk '{gsub("_|\\[|\\]","",$0); print $1 "-" $2;}' prova.txt
awk读取每一行并使用“ ”(空格)作为字段分隔符,子集删除字符:'_' '[' ']',因此 $1 和 $2 将包含没有不需要的字符的标记。
该脚本将输出:
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 手册您可以在那里找到更多详细信息。
答案2
如果你将这些数据保存在文件中file.txt
访问 111,
cat file.txt | tr -d "[]_" | awk 'NR==1 {print $1}'
访问 888 为,
cat file.txt | tr -d "[]_" | awk 'NR==4 {print $2}'