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

mic*_*obg 6 regex bash grep

我想得到一个文件中的符号计数.

wc -c f1.txt | grep [0-9]
Run Code Online (Sandbox Code Playgroud)

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

anu*_*ava 9

你可以使用awk:

wc -c f1.txt | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)

或使用grep -o:

wc -c f1.txt | grep -o "[0-9]\+"
Run Code Online (Sandbox Code Playgroud)

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

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


gle*_*man 7

将数据传递给wcstdin而不是文件:nchars=$(wc -c < f1.txt)