通过 awk 访问字段的元素

通过 awk 访问字段的元素

我有以下列:

_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}'

关于使用 awk 访问字段元素

相关内容