Ope*_*way 11 string bash integer
我试图在这里找到解决方案,但不能; 给出的字符串
ABC3
DFGSS34
CVBB3
Run Code Online (Sandbox Code Playgroud)
我怎样才能提取整数
3
34
3
Run Code Online (Sandbox Code Playgroud)
??
anu*_*ava 25
只需一个简单的sed命令即可完成工作:
sed 's/[^0-9]//g' file.txt
Run Code Online (Sandbox Code Playgroud)
3
34
3
Run Code Online (Sandbox Code Playgroud)
pax*_*blo 13
对于仅限bash的解决方案,您可以使用参数模式替换:
pax$ xyz=ABC3 ; echo ${xyz//[A-Z]/}
3
pax$ xyz=DFGSS34 ; echo ${xyz//[A-Z]/}
34
pax$ xyz=CVBB3 ; echo ${xyz//[A-Z]/}
3
Run Code Online (Sandbox Code Playgroud)
它与sed解决方案非常相似,但具有不必分叉另一个进程的优点.这对于小型工作来说可能并不重要,但是我曾经遇到过这样的情况,即文件的许多行都进行了这种事情,并且非分叉是一个显着的速度提升.
怎么用tr?
for s in ABC3 DFGSS34 CVBB3 ; do
tr -cd 0-9 <<<"$s"
echo
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33278 次 |
| 最近记录: |