输入文件有1个两个名字。 2美元大部分已经填满,但有时空无一人。
1; 2; 3;
Trump; abc;
Obama;
Obama; abc;
Obama;
Trump; abc;
如果名称“特朗普”或“奥巴马”出现在1美元而2美元是英特尔,我正在寻找AWK的条件,用“媒体”这个词填充3美元。
我试过了:
{if ($1=="Trump" || $1=="Obama" && $2==" ") {$3=="Media"};
print $0}
和
{if ($1=="Trump" && $2==" ") {$3=="Media"};
if ($1=="Obama" && $2==" ") {$3=="Media"};
print $0}
答案 0 :(得分:1)
考虑到字段分隔符为\t
(制表符),并且每个第二个字段为空,包含空格" "
(空格),您可以使用以下方法:
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类