我正在尝试使用正则表达式传输文本以匹配:O后跟空格和随机数,然后是新行
示例:
fffffffffffffffffffffffffffffffO 11
ffffffffffffffffO 145
fffffffffffffffffffffffffO 257
fffffffffffO 47
fffffffffffffffffffO 1
ffffffffffffO 85
fffffffffffffffffffffffO 144
fffffffffffffffO 356
并且像这样:
fffffffffffffffffffffffffffffff
ffffffffffffffff
fffffffffffffffffffffffff
fffffffffff
fffffffffffffffffff
ffffffffffff
fffffffffffffffffffffff
fffffffffffffff
使用sed或awk ...
任何想法?
答案 0 :(得分:3)
SED
sed -i 's/O [0-9]\+$//' file
答案 1 :(得分:2)
您可以使用:
awk -F "O" '{ $2=""; print $0}' file.txt
或Jotne的较短版本:
awk -F\O '{$2=""}1'
正如格伦杰克曼所说,你只能打印所需的部分:
awk -F "O" '{ print $1}' file.txt
但是,这些命令并不关心行中是否有另一个O
,以及行尾是否有数字。
答案 2 :(得分:1)
现在就在sed中进行:
sed -i 's/O\ [0-9]\+//g' file.txt
编辑:
如果必须以" O [0-9] *"结束,则在正则表达式的末尾加上一个$,将其锚定到该行的末尾。
sed -i 's/O\ [0-9]\+$//g' file.txt
答案 3 :(得分:0)
Perl one liner会为你做什么吗?
perl -i.bak -p -e "s/(.*)O.*/$1/g" input.txt