从文本文件在linux删除文件整个线用2柱,用1柱
文件
ABC 123
DEF 456
GHI 789
文件B
高清
Resultfile
ABC 123
GHI 789
我使用sed,grep的尝试过,但它只是将无法正常工作。我只是说学习Linux和coudn't找到任何相似的东西。
谢谢
// * -----------
的grep -wvf的工作,但现在我知道我有一个问题,刺痛,其中“#”是面前。那些也将被删除。通过修改为grep -w x vf,该命令根本不起作用。我需要grep以外的其他命令吗?
awk 'FNR==NR{a[$0];next}(!($1 in a)){print}' fileb filea
{a [$ 0]; next} - 此块将执行到FNR == NR(这意味着对于fileb的所有行)。 “next”确保在该块之后没有代码被执行。
在fileb行的结尾处,您有一个关键数组,其中作为filb和value中的行的键为null。
然后开始处理filea中的行。
{打印}将要为FILEA但条件的所有行(在)!($ 1) 这意味着打印仅当filea中的第一场是现有作为关联数组
一个键在filea中的线来执行这是一个纯代码的答案,请将其展开以帮助其他用户学习,而不仅仅是转储代码。 – Pureferret
谢谢,它工作 – crossing
既然我无法回复乌尔评论我在这里张贴,以删除以“#”开头的行尝试
的sed“/ ^#/ d” FILEA FILEB
'grep -wvf fileB fileA'使用'man grep' – anubhava
工作感谢。另一个问题:如何与#infront蜇伤? E.G abs 123和#abc 123,我想只删除找到“#abc”的那一行? – crossing