bash - shell脚本中的嵌套命令和管道命令

标签 bash shell grep nested

我正在 shell 脚本中尝试一些测试,如下所示:

line="100:xx"
echo "$line" | grep -Po \\d+

结果:1​​00

但是,

line="100:xx"
echo `echo "$line" | grep -Po \\d+`

结果为空

为什么?

最佳答案

因为反引号允许像双引号字符串这样的扩展,所以你的一个反斜杠很快就会被吃掉:

$ echo `echo "$line" | grep -Po \\d+ | cat`

$ echo `echo "$line" | grep -Po \\\d+`
100

话虽这么说,只需引用正则表达式即可

$ echo `echo "$line" | grep -Po '\d+'`
100

关于bash - shell脚本中的嵌套命令和管道命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29891731/

相关文章:

linux - Bash - 从文件中读取行时打印第一列和第二列

shell - 遍历文本文件并查找不在所有文件中的行

linux - 如何将 file_name.csv.gz 文件解压缩为 .csv

linux - 仅将旧文件移动到另一个目录

linux - if [ "${-#*i}"!= "$-"] 是什么意思?

linux - nfs mount shell 脚本中需要一元运算符

ruby - Grep 文件并在 ruby​​ 中提取值

linux - 在 Linux 中使用过滤器对 txt 文件中的行进行分组以创建多个 txt 文件

javascript - 将带有方括号的字符串转换为方括号内容合并的列表

bash - 将文件中每一行的首字母更改为大写