我有一个文本文件,它的格式如下:
所以我在Linux中尝试使用grep命令,只保留每行中第一个空格之前的字符。我尝试了很多次,比如:
尝试从不同的示例中拼凑,但是我没有成功。它们都生成了一个空白的
*编辑:
我想保留的部分包括大写字母。所以我希望在每一行中保留直到空格之前的任何/所有字符(删除从空格开始的所有内容)。
**编辑:
垃圾文本(我想要删除的)可以包含任何内容,包括空格、特殊字符等。例如:
在运行
在text2.txt中。(我只想保留的是
解决方案(由Rohit Jain提供,beny23进一步提供意见):
characters(that I want to keep) (space) characters(that I want to remove)
所以举个例子:
foo garbagetext
hello moregarbage
keepthis removethis
(etc.)
所以我在Linux中尝试使用grep命令,只保留每行中第一个空格之前的字符。我尝试了很多次,比如:
grep '*[[:space:]]' text1.txt > text2.txt
grep '*[^\s]' text1.txt > text2.txt
grep '/^[^[[:space:]]]+/' text1.txt > text2.txt
尝试从不同的示例中拼凑,但是我没有成功。它们都生成了一个空白的
text2.txt
文件。我对此还很陌生。我做错了什么吗?*编辑:
我想保留的部分包括大写字母。所以我希望在每一行中保留直到空格之前的任何/所有字符(删除从空格开始的所有内容)。
**编辑:
垃圾文本(我想要删除的)可以包含任何内容,包括空格、特殊字符等。例如:
AA rough, cindery lava [n -S]
在运行
grep -o '[^ ]*' text1.txt > text2.txt
之后,上面的那一行变成了:AA
rough,
cindery
lava
[n
-S]
在text2.txt中。(我只想保留的是
AA
)
解决方案(由Rohit Jain提供,beny23进一步提供意见):
grep -o '^[^ ]*' text1.txt > text2.txt
grep -o '^[^ ]*' text1.txt > text2.txt
来匹配开头。 - Rohit Jain