首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在第1列上查找特定关键字,并在第2列shell脚本上追加新行

在第1列上查找特定关键字,并在第2列shell脚本上追加新行
EN

Stack Overflow用户
提问于 2016-03-05 23:56:30
回答 2查看 67关注 0票数 0

我有一个文本文件,看上去如下所示:

代码语言:javascript
复制
 empty      2
 23         8
 19         1
 empty
 11

如果第1列的关键字为“空”,我将尝试在第2列中添加新行。有人知道怎么做吗?预期产出如下:

代码语言:javascript
复制
 empty      
 23         2
 19         8
 empty
 11         1 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-06 01:19:15

下面是gnu的脚本:

代码语言:javascript
复制
{ col1[ FNR ] = $1
  col2[ FNR ] = sprintf("%s %s",$2, $3)
}

END {
  k2 = 0;
  for( k1 = 1; k1 <= FNR; k1++) {
      if( col1[ k1 ] != "empty" ){
         k2++
         print col1[ k1], col2[ k2]
      }
      else print col1[ k1]
  }
}

它将column1和(列2+列3)的值存储在两个不同的数组中。在输出期间(在END中),只有当第一列不是“空”时,它才会消耗来自第二个数组的值。

票数 1
EN

Stack Overflow用户

发布于 2016-03-06 00:20:29

awk去营救!

代码语言:javascript
复制
$ awk 'p{t=$2;$2=p;p=t} $1=="empty"{if($2!=""){p=$2;$2=""}}1' file

empty                                                                                                                        
23 2
19 8
empty 
11 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35821409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档