Bash:如何从字符串中取一个数字? (正则表达式可能)

时间:2012-05-07 17:42:42

标签: regex bash grep

我想获取文件中的符号计数。

wc -c f1.txt | grep [0-9]

但是这段代码返回grep查找数字的行。我想只返回 38 。怎么样?

2 个答案:

答案 0 :(得分:9)

您可以使用awk:

wc -c f1.txt | awk '{print $1}'

或使用grep -o

wc -c f1.txt | grep -o "[0-9]\+"

或使用bash正则表达式功能:

re="^ *([0-9]+)" && [[ "$(wc -c f1.txt)" =~ $re ]] && echo "${BASH_REMATCH[1]}"

答案 1 :(得分:7)

从stdin而不是文件wc

将数据传递给nchars=$(wc -c < f1.txt)