2013-10-20 112 views
0

我有以下形式的csv文件(1TB)刪除不需要的行:要使用Linux命令

1  hi hello 
2  users badges 
abc def 
3  questions 
4  tags 
Unanswered answered 

每當我在該行的開頭的字符串,我想刪除這條線,每當我想要保留那一行的行的開頭有一個數字(整數)。 我要在以下格式輸出:

1  hi hello 
2  users badges 
3  questions 
4  tags 

是否有可能使用Linux命令來實現它。我知道這是可能實現這一目標使用的編程語言如Python但有可能實現使用cat和sed等

回答

0

使用grep過濾行:

$ cat > a_file 
1  hi hello 
2  users badges 
abc def 
3  questions 
4  tags 
Unanswered answered 
$ grep '^ *[0-9]' a_file > a_file.modified 
$ cat a_file.modified 
1  hi hello 
2  users badges 
3  questions 
4  tags 
$ mv a_file.modified a_file 
+0

非常感謝您的回覆。它非常有幫助。請您詳細解釋個別命令的作用 –

+0

請閱讀手冊(RTM) – axon

+0

@JannatArora,'cat> a_file'用於製作一個樣本文件進行測試。 – falsetru

2
sed '/^[^0-9].*/d' test.txt 

這將刪除所有行在文件test.txt中不以0-9開頭

+0

+1爲優雅的選擇。大多數情況下'sed'只與更換有關。 –