我有一個數據看起來像這樣如何排序忽略空白行
<some blah! blah!>|201451|<some blah! blah!>
<some blah! blah!>|201441|<some blah! blah!>
<some blah! blah!>|201431|<some blah! blah!>
<some blah! blah!>|201421|<some blah! blah!>
我必須把它整理到
<some blah! blah!>|201421|<some blah! blah!>
<some blah! blah!>|201431|<some blah! blah!>
<some blah! blah!>|201441|<some blah! blah!>
<some blah! blah!>|201451|<some blah! blah!>
我一直在使用這兩種嘗試:
sort -t"|" -k4.5,4.6 -b data
LC_ALL=c sort -t"|" -k4.5,4.6 -b data
但它總是給我
<FOUR BLANK SPACE>
<some blah! blah!>|201421|<some blah! blah!>
<some blah! blah!>|201431|<some blah! blah!>
<some blah! blah!>|201441|<some blah! blah!>
<some blah! blah!>|201451|<some blah! blah!>
我想維護與排序值的空間。我該怎麼做?
基本上我有忽略該行空間,而不是刪除它們...
你不能。排序是按照每行的方式進行的,因此這些空白行將按照原樣排序。你會更好地擺脫它們,然後使用awk/sed來添加空白行。 –
然後y?他們是否給出了-b選項。 –
樣本數據只有3列,所以'-k4.5,4.6'是誤導(對於顯示的數據,它應該可能是'-k2.5,2.6')。它也似乎是你想對第二列的最後兩個字符進行字典排序,這意味着' | 201501 |將在數據中顯示的任何行之前出現'',並且' | 199999 |在顯示任何一行後會出現「」。那真的是你想要的嗎?如果你只是在第二列進行數字排序:'-k2n'? '-b'選項適用於一行中的字段中的前導空格。 –