任何人都可以帮助我使用 sed 获取子字符串吗?程序?
我有一个包含这一行的文件:
....
define("BASE", "empty"); # there can be any string (not only "empty").
....
而且我需要将“空”作为字符串变量添加到我的 bash 脚本中。
此刻我有:
sed -n '/define(\"BASE\"/p' path/to/file.ext
# returns this line:
# define("BASE", "empty");
# but I need 'empty'
UPD:感谢@Jaypal
现在我有 bash 脚本:
DBNAME=`sed -n '/define(\"BASE\"/p' path/to/file.ext`
echo $DBNAME | sed -r 's/.*"([a-zA-Z]+)".*/\1/'
它工作正常,但是否有任何方法可以用一行代码进行相同的操作?
最佳答案
你应该使用 is
sed -n 's/.*\".*\", \"\(.*\)\".*/\1/p' yourFile.txt
意思是 (.*
) 后跟引号 (\".*\"
),然后是逗号和空格 (,
),然后又是引号内的内容 (\"\(.*\)\"
)。
括号定义了您以后可以重用的部分,即第二个引号中的字符串。与 \1
一起使用。
我把 -n
放在前面是为了回答更新后的问题,让被操纵的行在线。
关于bash - 使用 "sed"从文件中获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8847718/