+ -
当前位置:首页 → 问答吧 → 如何抽取匹配行下指定行不为空时的匹配行下指定行内容(最好用awk)

如何抽取匹配行下指定行不为空时的匹配行下指定行内容(最好用awk)

时间:2011-07-07

来源:互联网

如何抽取匹配行下第三行不为空时,匹配行下面三行行内容。最好用awk和grep
例如数据
TAG 1
444


TAG 2



TAG 3
111
222
333

我想得到的结构是
111
222
333

我更希望能把匹配行指定的域内容提取出来添加到输出结果中。如
3  111
3  222
3  333
请达人指教。最好能解释下。

作者: fortuneteller   发布时间: 2011-07-07

  1. awk -v RS= 'NF>4{print $2" "$3"\n"$2" "$4"\n"$2" "$5}' file
复制代码

作者: TasteOracle   发布时间: 2011-07-07

  1. awk 'BEGIN{RS=""}{if(NF>4)print NR" "$3"\n"NR" "$3"\n"NR" "$3}' file
  2. 3 111
  3. 3 111
  4. 3 111
复制代码

作者: zooyo   发布时间: 2011-07-07