如何删除文本文件中带有模式的单词

时间:2012-04-09 14:55:41

标签: linux bash vi

我用逗号(,)

分隔文件
word1,word2,word3,word4  
word80,word81,word82

这就是我想要的

word1,word2  
word80,word81

所以,我每行只需要两个单词,我不在乎其余的,包括第二个逗号(,)
word3 word4 word82可以删除或简单方法,删除条件行;逗号不止一个

3 个答案:

答案 0 :(得分:7)

:%s/^\([^,]+,[^,]+\),.*$/\1/

您不需要在vi中执行此操作,但其他两种解决方案

awk -F, '{print $1 "," $2}'

cut -d, -f1-2

答案 1 :(得分:3)

哇,有很多方法......这是使用sed的东西:

$ sed 's/\(^[^,][^,]*,[^,][^,]*\).*/\1/' $file_name

第一个和最后一个怎么样?使用awk

$ awk '{print $1 "," $NF}` $file_name

答案 2 :(得分:0)

$ cat input | cut -d, -f1,2
word1,word2
word80,word81

您没有指定语言,因为您将其标记为bash,我使用它。