2013-03-27 85 views
4

基於定界符我有以下文本行的文件的文本文件:分割使用Linux命令行

jeremy , thomas , 123 
peter , paul , 456 
jack , jill , 789 

我想刪除所有數據除中心項目。例如與包含文件結束了:

thomas 
paul 
jill 

我已經嘗試了這麼多awk的模式我的大腦正在迅速增長。任何幫助,將不勝感激。

+1

爲什麼不只是'剪切'? – 2013-03-27 00:33:03

+0

@MattBall因爲cut不允許你指定一個多字符的字符串,比如','作爲字段分隔符。 – 2013-03-27 01:23:31

回答

7

嘗試awk

awk -F '[[:space:]]*,[[:space:]]*' '{print $2}' input.txt 
+0

+1爲正確的解決方案。 – 2013-03-27 01:24:03

+0

這似乎不適用於我,但使用實際空格字符 – Necrolyte2 2013-03-27 02:02:28

+0

@ Necrolyte2,那麼您必須使用舊的,破損的awk(Solaris上的/ bin/awk)。使用不同的awk,例如Solaris或nawk上的/ usr/xpg4/bin/awk。 – 2013-03-27 13:36:00

1

試試這個

cat <filepath> | tr -d ' ' | cut -d',' -f2 
+1

我想這是假設你不強迫自己使用awk – Necrolyte2 2013-03-27 00:34:20

+0

不,我不是強迫自己使用awk,它似乎是正確的工具。現在我意識到我離基地很遠。感謝您的簡單解決方案。 – user1488639 2013-03-27 00:38:00

+0

我不會說你離開基地。 kev有一個很好的純awk解決方案。 – Necrolyte2 2013-03-27 00:39:53

1

的grep環顧四周:

grep -Po '(?<=,).*(?= ,)' file 
0

試試這個:

$ cat (your file)| cut -d ',' -f2 > (new file) 

例如:

$ cat /home/file1.txt | cut -d ',' -f2 > /home/file2.txt