【发布时间】:2018-01-02 03:57:08
【问题描述】:
我有一个像这样的文本文件(example.txt):
100 this is a string
50 word
10
(请注意,最后一行有尾随空格字符。)
当我在我的 shell 脚本中执行以下操作时:
cat example.txt | sed '1!d' | awk '{for (i=2; i < NF; i++) printf $i " "; print $NF}' - 返回这是一个字符串
cat example.txt | sed '2!d' | awk '{for (i=2; i < NF; i++) printf $i " "; print $NF}' - 返回单词
cat example.txt | sed '3!d' | awk '{for (i=2; i < NF; i++) printf $i " "; print $NF}' - 返回 10(不正确,应该是空格字符)
有什么方法可以在 bash 中使用 grep 来返回我要查找的结果吗?
【问题讨论】:
-
那么您正在寻找的是结果是什么?你只是想剥离领先的数字吗?最后一行的哪些空格字符是要输出的数据,哪些是输入文件格式的一部分,要忽略?
-
是的,你可以这么说,我想去掉前导数字(或找到的第一个空格字符之前的任何字符)。文本文件的格式必须以数字开头,然后是空格,剩下的无关紧要(也可以是空格)。我的目标是删除数字和第一个空格,并将其余部分写入变量。但是,如果剩下的只包含空格字符,我就做不到