下面是我的输入文件:
sample.txt
:
3"
6-position
7' 4" to 10' 3-1/2"
4.8"
Adjustable from 99" to 111" - max 148
在输出中我只需要 3 个,即
output.txt
:
3
4.8
所以基本上我需要打印"
符号的数值,其他非数字文本需要完全删除。
我试图用 来实现这个sed
,但我无法得到想要的结果。
有没有办法在 UNIX 上实现这一点?
awk 更适合执行此类任务:
awk '/^ *[0-9]*(\.[0-9]+)?" *$/{sub(/"/, ""); print}' inFile
输出:
3
4.8
这可能对您有用(GNU sed):
sed '/^[0-9.]\+"/!d;s/".*//' file
I think you are asking for grep -o [0-9][0-9]*\" sample.txt
Which will match one or more numbers followed my a '"', and print each occurrence separately and without surrounding text.