否定sed的正则表达式
问题描述:
的我在与标签分离器的文本文件的表,我有一个sed脚本,只选择在我的文件中有那些串83,86,173,163在第二栏:否定sed的正则表达式
sed -n '/^[^\t]\+\t\(83\|89\|147\|163\)/p' test.txt
现在我想选择所有其他字符串,但第二列中的83,86,173,163。我试图把^放在不同的地方,并试图将p改为d,但没有成功。
任何人都可以帮助我吗?
答
解决了我的问题使用!第106页:
sed -n '/^[^\t]\+\t\(83\|89\|147\|163\)/!p' test.txt
+0
你也可以使用'sed'/^[^ \ t] \ + \ t \(83 \ | 89 \ | 147 \ | 163 \)/ d'test.txt' ...参见https:// *。 com/documentation/sed/3120/address-and-address-range/17103/negating-address-range#t = 201611061139422082497更多示例 – Sundeep
只要你使用'在 'P' 模式sed',为什么不试试'grep的-v'你的任务是什么? – agg3l