我试图为这个问题找出解决方案。我想使用awk
该解决方案。
我的输入文件如下所示。
-bash-3.2$ cat file
ramesh
ramesh_venkat
ramesh3_venkat3
ramesh4
ramesh5
venkat
venkat3
venkat4
我使用awk
命令来提取第二个值_
,如下所示。
awk -F "_" '{print $2}' file
但是,尽管上面的命令显示了正确的值,但是我的输出中却出现了空行。我有两个问题。
问题1
如何删除输出中的空白行,以便仅获得venkat
和输出中的空白行venkat3
?
如果我使用printf
的,而不是print
我的awk
,我得到venkatvenkat3
的这不是我想要达到的输出。我想要这样的输出,
venkat
venkat3
问题2
使用这些值作为关联数组或其他东西,如何确定这些值是否实际出现在$1
列中?
我想实现这样的目标,
awk -F "_" '$2==1{print $1}' file
编辑
我没有注意到awk
Stephane 的解决方案。它在做我刚才提到的事情吗?
对于非awk,请参阅:如何从shell中的文件中删除空白行?
—
kenorb 2015年
awk
)没有做同样的事情。您的方法假设一个单词只有用分隔,才能包含在另一个单词中_
。尽管对于OP的示例而言确实如此,但所有发布的答案也都处理,doglion
而不仅限于dog_lion
。