我有以下的問題,我需要提取的標籤,看起來分離大的CSV的一些線路如下:如何過濾由製表符分隔的csv?
organe organ hkl0094508 g67 1 LBNhkl23 AcorFive sentiment PENDLEorFON WOOLEN MIL REWS Managed Services LBEAN 1-800-SFFA-CALL N
organe organ hkl0968175377 g67 1 GNSFORJL AcorFive sentiment NesorF Labs for JL . . . N
organe organ hkl099999 g67 1 INorFEL385 AcorFive sentiment FRYS REWS Managed Services B2B orFech SuppororF 916-356-1234 N
organe organ hkl108860 g67 1 INorFEL976 ACorFIVE sentiment RYOYO . . . . . . N
的想法是隻提取匹配在第二列具有特定的行清單:
hkl0968175377
hkl0094508
拳頭的辦法,我想是用awk,如下: 我打字用verbatin模式的標籤,按下Ctrl v,
awk -F " " 'FNR==NR{seen[$1]; next} $2 in seen' patterns original_list > new_list
但是當我做:
$ wc -l new_list
0 new_list
我得到了0線,我期望的輸出將被稱爲new_list有以下兩行的檔案:
organe organ hkl0968175377 g67 1 GNSFORJL AcorFive sentiment NesorF Labs for JL . . . N
organe organ hkl0094508 g67 1 LBNhkl23 AcorFive sentiment PENDLEorFON WOOLEN MIL REWS Managed Services LBEAN 1-800-SFFA-CALL N
我想感謝任何建議,以克服這個情況。
如果你的輸入文件和代碼如你所說,那麼你會得到你期望的輸出。因此,要調試文件,請在腳本中添加打印語句,從第一個文件中打印FS,第一個文件打印$ 1,第二個文件打印帶有分隔符的打印文件$ 2,以便您清楚地看到它們是什麼,例如。 'printf'<%s> \ n「,$ 1'。 –
我不認爲你的字段分隔符是正確的。嘗試使用'-F'+''(兩個或更多空格) – karakfa
或者如果您的數據(或腳本)已通過Windows操作系統系統,則可能有'\ r \ n'行尾。通過運行'dos2unix data1.txt data2.txt .... myScript.sh ....'清理它們。'每個文件將被替換爲'\ n'版本。祝你好運。 – shellter