2017-08-01 40 views
0

大家都說你應該這樣做:AWK:如果列空不工作在互聯網上

if ($2 == "") 

或本:

if (!length($2)) 

或本:

if (!$2) 

所有這些不爲我工作。我得到了一個csv,由「;」隔開有2列。在某些情況下,第二列是空的(我可以在gedit中看到)。

我想區分該文件中的2 sets2 sets = last column empty vs last column not empty)。如果我只是print length($2),我看到第2列中沒有任何內容的那些行實際上長度爲1.

所以似乎有些東西在裏面,但我看不到它是什麼?

如何讓這個東西可見,這使得長度等於1?似乎在阻止上述3個表達式匹配。

+1

請出示一些示例數據以及您的系統上失敗的較大部分代碼。我想到的一件事是,你有Windows行結尾'\ r \ n'。 –

回答

5

每個人都在互聯網上...

真的嗎? :)

我的猜測是,第二列包含\n\r,它是無形的,但算作其長度爲1。有一個看看這個:

How can I trim white space from a variable in awk?

+1

是的,在他們教導的每一個線程中都是這樣的:P謝謝,這確實是導致麻煩的Windows換行符(\ r \ n - >剛剛用sed踢出了\ r)。用linux換行符上面提到的所有這3個表達式工作! – user3182532

+0

我從來沒有說過。我想我不在互聯網上。 –

+0

那麼,至少[女孩](http://www.urbandictionary.com/define.php?term=Rule%2037)不會這麼說。 –

相關問題