我想选择2个字段,然后将它们放到一个文件中:
字段$ 1我想选择全部,如果它= @符号(对于电子邮件)
字段$ 2我想选择它是否=某个字符长度即。 40。 只有满足两个要求时才输出,如何在awk或sed中执行此操作?
我正在使用它:
awk -F: '/\@/ {print $1 ":" $2 }' test.txt > file_output.txt
然而,@是1美元和2美元,这不是我想要的。 谢谢,
编辑:这是一个例子(粗体)
email@some.com:123456789123456789123456789 :嗒嗒:等等:等等
忽略:1234 @ 56789
需要输出: email@some.com:123456789123456789123456789
答案 0 :(得分:1)
你可以使用它;
awk -F: '{if ($1 ~ /\@/ && length($2) == 40) print $1 ":" $2 }' test.txt > file_output.txt
测试;
示例文件
$ cat t
user@host1:0123456789012345678901234567890123456789
user@host2:0123456789012345678901234567890123456789
userhost3:0123456789012345678901234567890123456789
user@host4:012345677
awk输出;
$ awk -F: '{if ($1 ~ /\@/ && length($2) == 40) print $0 }' t
user@host1:0123456789012345678901234567890123456789
user@host2:0123456789012345678901234567890123456789