2015-08-20 37 views
1

我在UNIX腳本中有一個查詢。我有如下文件: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 |在最後一個管道(|)後面有一個空格。它不會選擇該行。我們需要修剪這個?

回答

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

還有一個問題:如果E | F | G |在最後一個管道(|)後面有一個空格。它不會選擇該行。我們需要修剪這個? –

+0

或者甚至是這樣的:'awk -F'[[:blank:]] * \\ | [[:blank:]] *''$ 4 =='「'file' – anubhava

0

awk -F'|' '!長度($ 4)'文件
E | F | G |
L | M | N |
O | P | Q |

相關問題