使用bash,可以说我有以下字符串
string="Same bought 5 bananas, 12 apples, 2 peaches and 16 oranges"
如何修剪除第n个数字以外的所有内容。在这种情况下,我要输出12,这是字符串中的第二个数字。
我该如何使用bash,grep或sed?
答案 0 :(得分:1)
根据Paul Hodges和Triplee
grep -Eo '[0-9]+' <<<"$string"| sed 'nq;d'
n 是数字的位置
sed 'NUMq;d'
NUM
是要打印的行。
2q
在第二行说退出。
d
将删除除最后一行以外的所有其他行
答案 1 :(得分:1)
这可能对您有用(GNU sed):
sed 's/^\([^0-9]*\([0-9]*\)\)\{2\}.*/\2/;/^$/d' file
这用第二组数字替换当前行。除非输出数字,否则将删除该行。