如何在字符串的第n个位置输出数字?

时间:2018-12-12 11:28:50

标签: bash sed grep text-manipulation

使用bash,可以说我有以下字符串

string="Same bought 5 bananas, 12 apples, 2 peaches and 16 oranges"

如何修剪除第n个数字以外的所有内容。在这种情况下,我要输出12,这是字符串中的第二个数字。

我该如何使用bash,grep或sed?

2 个答案:

答案 0 :(得分:1)

Solution Using sed

  

根据Paul HodgesTriplee   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

这用第二组数字替换当前行。除非输出数字,否则将删除该行。