正则表达式删除每行中空格后的字符

时间:2012-07-14 11:24:55

标签: regex

我有一个像这样的50k行的文本文件

word1 1 23
word2 43 23
word3 197
word4

并且需要一种方法使它看起来像这样:

word1
word2
word3
word4

所以我需要一种方法来删除每行中第一个空格后面的每个字符。 我该怎么做?

3 个答案:

答案 0 :(得分:5)

多种解决方案。

解决方案1:Vim

vim中打开文件,然后运行:

:%s/\s.*//g

解决方案2:sed

sed "s/ .*//g" < input_file > output_file

不能在Windows上执行此操作。

解决方案3:Excel / Calc / Numbers

在OpenOffice / MSOffice / etc中导入文件 您可以将空格设置为分隔符 但这是一个更慢,更有趣的。 :)

答案 1 :(得分:2)

[ghoti@pc ~]$ cat input.txt 
word1 1 23
word2 43 23
word3 197
word4
[ghoti@pc ~]$ awk '{print $1}' input.txt 
word1
word2
word3
word4
[ghoti@pc ~]$ sed 's/ .*//' input.txt 
word1
word2
word3
word4
[ghoti@pc ~]$ cut -d\  -f1 input.txt 
word1
word2
word3
word4
[ghoti@pc ~]$ 

答案 2 :(得分:1)

我建议使用excel或电子表格代替它,如果它是一次性的。

只需导入文件,并将分隔符设置为空格字符。然后您可以删除除第一列以外的所有列,并再次保存为文本文件。