我有一个如下文本文件
IMPALA COUNT :941 MONGO COUNT : 980
IMPALA COUNT :78 MONGO COUNT : 78
IMPALA COUNT :252 MONGO COUNT : 258
IMPALA COUNT :3008 MONGO COUNT : 3064
我想删除所有内容并保持如下
941 980
78 78
252 258
3008 3064
任何人都可以为此建议任何一个shellcript。
答案 0 :(得分:3)
一种方式:
cut -d':' -f2,3 file.txt | cut -d' ' -f1,5
另:
awk '{print substr($3, 2) " " $7}' file.txt
答案 1 :(得分:1)
提取两位数字的sed解决方案:
sed -r 's/[^0-9]*([0-9]+)[^0-9]*([0-9]+).*/\1 \2/g' file
答案 2 :(得分:1)
以下是一些选项:
grep -Eo '[0-9]+' file | paste -d " " - -
awk -F'[ :]+' '{print $4, $7}' file
awk -F: '{print $2+0, $3}' file
perl -lne '@matches = /(?<=:) *(\S+)/g; print join " ", @matches' file
答案 3 :(得分:1)
sed -e 's/[^:]*: *\([0-9]*\) */\1 /g;s/ $//'
即:替换任何非冒号[^:]*
的序列,后跟冒号,可能是空格: *
,后跟一系列数字,可能还有空格\([0-9]*\) *
,数字序列\1
加一个空格;然后删除该行中的最后一个空格。
答案 4 :(得分:1)
sed -r 's/[^0-9]+://g' file
它只匹配数字[^0-9]+
后跟:
的所有字符并删除它们。
$ cat file
IMPALA COUNT :941 MONGO COUNT : 980
IMPALA COUNT :78 MONGO COUNT : 78
IMPALA COUNT :252 MONGO COUNT : 258
IMPALA COUNT :3008 MONGO COUNT : 3064
$ sed -r 's/[^0-9]+://g' file
941 980
78 78
252 258
3008 3064