如何通过终端排除文本文件的行尾?

时间:2017-05-20 20:06:32

标签: sed grep

给定./wordslist.txt文件<word> <number_of_apparitions>,例如:

aš toto 39626
ir 35938
tai 33361
tu 28520
kad 26213
...

如何排除行尾数字,以便收集output.txt个数据:

aš toto
ir
tai
tu
kad
...

注意: Sedfindcutgrep首选。因为我的数据可以包含ascii字母,非ascii字母,中文字符,数字等,所以我不能使用保存[a-z]内容的东西。

4 个答案:

答案 0 :(得分:1)

我建议:

cut -d " " -f 1 wordslist.txt > output.txt

或者:

sed -E 's/ [0-9]+$//' wordslist.txt > output.txt.

答案 1 :(得分:1)

在这种情况下,使用awk打印第一个单词。

awk '{print $1}' your_file > your_new_file

答案 2 :(得分:1)

awk解决方案只需打印输入行,不包括上一栏

$ awk '{NF--; print}' wordslist.txt 
aš toto
ir
tai
tu
kad

注意:

  • 这只适用于某些问题。每个POSIX递增NF添加一个空字段但递减NF是未定义的行为(感谢@EdMorton获取信息)
  • 这不会检查最后一列是否为数字,输出中的字段分隔是否仅为单一空格
  • 如果输入文件中可能有空行,请使用awk 'NF{NF--}1'

答案 3 :(得分:0)

以下作品:

sed  -r 's/ [0-9]+$//g' wordslist.txt