在awk中条件链接是否可行?

在awk中条件链接是否可行?,awk,conditional,chaining,Awk,Conditional,Chaining,输入文件在$1中有两个名称$2大部分是满的,但有时是空的 1; 2; 3; Trump; abc; Obama; Obama; abc; Obama; Trump; abc; 我在AWK中寻找一个条件,若特朗普或奥巴马的名字出现在$1中,而$2是emtpty,那个么它将用单词media填充$3 我试过: {if ($1=="Trump" || $1=="Obama" && $2==" ") {$3=="Media"}; print $0} 及

输入文件在$1中有两个名称$2大部分是满的,但有时是空的

    1;   2;    3; 
Trump;  abc;
Obama;  
Obama;  abc;
Obama;  
Trump;  abc;
我在AWK中寻找一个条件,若特朗普或奥巴马的名字出现在$1中,而$2是emtpty,那个么它将用单词media填充$3

我试过:

{if ($1=="Trump" || $1=="Obama" && $2==" ") {$3=="Media"};
print $0}


考虑到字段分隔符为\t AB,并且每一个空字段都包含空格,您可以使用以下方法:

awk -F"\t" '{OFS="\t"; if($1~/Trump|Obama/ && $2~/ /)$3="media"; print}' testfile 
$1~/Trump | Obama/-根据正则表达式检查字段值

输出:

Trump   abc
Obama           media
Obama   abc
Obama           media
Trump   abc
第二个字段的备选比较:

2美元~/[^]/


$2~/[:space:][]/-POSIX空白字符类

你能用空的$7字段显示示例行吗?你似乎真的很难问问题。它非常简单——阅读,然后发布简明的、可测试的样本输入和您希望从该输入中获得的输出,以及您迄今为止尝试过的内容。发布包含3个字段的示例输入,并询问如何在第7个字段上操作,您想要在媒体上操作的一些文本完全没有出现在示例输入中,没有预期的输出和脚本的两个断开连接的部分是没有帮助的-这只会让人困惑。正如@EdMorton所说,请提供一个简短的说明,以便我们了解您的问题所在。简洁就是简明扼要。你让你的帖子简短,而不是简洁。“缺少清晰性。@詹姆斯布朗不要责怪/相信我:-,这正是简洁的意思。见和。我想你可能会责怪我,因为在我开始在演示文稿中使用它之前,我没有遇到其他人使用它,因为我声称所有软件都有4个绝对基本的C考虑因素,比如钻石钻石=切割、颜色、克拉、清晰度,而软件=简洁、一致性、内聚性,重要的是要注意,简洁本身并不可取,但简洁才是。谢谢。我不知道如何对照正则表达式检查字段值,以及空字段是否等于reg.exp.//有些地方仍然不对劲:如果我检查$2~//是否为空,它就不会一直工作。在我的情况下,它只在第二次情况属实时起作用?!如果我再检查$2~/abc/它总是像你说的那样工作。所以有一个isse和正则表达式在寻找空字段。@EdMorton,我不明白you@EdMorton,我来自乌克兰。我们有自己的问题、问题和事实,我们必须建立自己的方式。在这样的背景下,特朗普的替代事实并不重要
Trump   abc
Obama           media
Obama   abc
Obama           media
Trump   abc