Answers:
您可以grep -E
用来访问扩展的正则表达式语法(与egrep相同)
我创建了一个包含以下内容的测试文件:
>cat testfile
this is some text
with some random lines
again some text
ok now going for numbers (:32)
ok now going for numbers (:12)
ok now going for numbers (:132)
ok now going for numbers (:1324)
现在仅从文本中提取数字即可使用
>grep -Eo '[0-9]{1,4}' testfile
32
12
132
1324
将被输出。
在这里,“-o”仅用于输出行的匹配段,而不是行的全部内容。
方括号(例如{和})指示匹配的实例数。{1,4}要求前一个字符或字符类必须至少出现一次,但不得超过四次。
希望这可以帮助
grep -Eo '[0-9]{1,}' testfile
您可以结合使用POSIX标准[:digit:]
第9.3.5节指定的RE方括号表达式和标志来仅打印匹配的“单词”-o
$ grep -o '[[:digit:]]*' <<< $'No number in this line\nbut 123 here'
123
我将使用curl来本地或远程访问文件,然后使用grep行将数字包裹在(:)中,然后将其切掉并写入文件
接受的答案将忽略文件的前几行中的数字,它确实适用于示例数据,但是如果文件是远程文件怎么办?
本地
curl file:///home/$USER/Public/input.txt | grep -o '(:.*)' | cut -d ":" -f 2 | cut -d ")" -f 1 > output.txt
在此示例output.txt
中,您当前的文件夹将被覆盖,我们正在input.txt
从您的“公共”文件夹进行访问。
远程
curl https://yoursite.com/Public/input.txt | grep -o '(:.*)' | cut -d ":" -f 2 | cut -d ")" -f 1 > output.txt
在此示例output.txt
中,您当前的文件夹将被覆盖,我们input.txt
从访问https://yoursite.com/Public/
。
curl
在简单的时候cat
会用?
man grep