bash - 将正则表达式替换分配给bash中的变量的正确方法
问题描述
我正在尝试为 bash 中正则表达式替换的结果分配一个变量。例如,当我跑步时
echo $initialvar | perl -pe 's/.+(Some_Dir\/)(.+)/\2/'
我从echo
. 我如何将 a 分配newvar
给结果输出?
我试过了:
newvar= "$($initialvar | perl -pe 's/.+(Some_Dir\/)(.+)/\2/')"
newvar= echo $initialvar | perl -pe 's/.+(Some_Dir\/)(.+)/\2/'
但它们都不起作用
解决方案
您可以使用以下任一方法:
newvar=$(echo "$initialvar" | perl -pe 's/.+(Some_Dir\/)(.+)/\2/')
newvar=`echo "$initialvar" | perl -pe 's/.+(Some_Dir\/)(.+)/\2/'`
推荐阅读
- java - Settings.ACTION_SOUND_SETTINGS 不会回到应用程序
- python - 对象类型没有名为长度的轴,尝试根据数据帧的长度进行排序并将其屏蔽到第二个数据帧
- mysql - makefile CFLAGS 忽略 $(mysql_config --libs)?
- c++ - 为什么 C++ 不读取我的 if-else 语句的下一行,尽管前面的语句不应该是真的?
- python - 有没有办法让 Pandas to_sql 函数变得冗长?
- java - IBM Websphere 中的 Java VisualVM JMX 连接
- java - 有没有一种简单的方法可以将 A 类的对象解析为 B 类的对象,该字段是 A 的子集?
- javascript - 与 HTML 和 Javascript 相关的数组问题
- javascript - 将任何 Nodejs 请求转发到其他服务器
- python - Pandas - groupby 索引作为列