繁体   English   中英

awk 一线更换条件

[英]awk condition for first line replacement

我有一个 shell 替换此文件的第一行:

TABLE;APGFBEBA; ;
NoSS;CHAR(13);N° assuré;
DtDebExo;CHAR(8);Date début;

通过这个:

01 APGFBEBA.

但我也有最初看起来像这样的文件:

Table;APGFNOJF; ; ;

所以我尝试在我的 awk 命令中添加一个“或”条件,这样我就可以像上面那样替换这些行,但不幸的是它不起作用

这是我的 awk 命令:

awk -F ';' '
$1=="TABLE" && $3==" " || $1=="TABLE" && $4==" " {
  printf "01 %s.\n\n", $2;
  next
}

第一个条件有效,但第二个条件无效

将我的评论转换为答案,以便将来的访问者轻松找到该解决方案。

你不需要|| 匹配两行的条件为

awk -F ';' '
toupper($1)=="TABLE"  && $3 == " " {
   printf "01 %s.\n\n", $2
}' file

应该适用于两条线。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM