UNIX - 具有分隔符条件的单独文件

时间:2015-08-20 15:43:34

标签: shell unix awk

我在UNIX脚本中有一个查询。我有一个文件如下:

A|B|C|D|  
E|F|G|  
H|I|J|K  
L|M|N|  
O|P|Q|  

我想从条件中选择条件为“只有没有第四个值的记录”的记录。结果文件应该看起来像

E|F|G|  
L|M|N|  
O|P|Q| 

有人可以帮我解决这个问题。

另外:还有一个问题:如果线E | F | G |怎么办?在最后一个管道(|)后面有一个空格。它不会选择该行。我们需要修剪这个吗?

2 个答案:

答案 0 :(得分:1)

您可以使用awk:

awk -F '|' '$4 == ""' file
E|F|G|
L|M|N|
O|P|Q|

<强>解体:

-F '|'   # sets input field separator as |
$4 == "" # selects only records that have 4th column empty

您也可以使用:

awk -F ' *\\| *' '$4 == ""' file

如果|字符周围有空格。

答案 1 :(得分:0)

awk -F'|' '!length($ 4)'文件
E | F | G |
大号| M | N |
ø| P | Q |