Bash 使用sed从XML文件中提取一个值,我得到的是开头的空白。我怎样才能避免呢?
我使用sed将XML文件中包含的值放入变量中 该文件如下所示:Bash 使用sed从XML文件中提取一个值,我得到的是开头的空白。我怎样才能避免呢?,bash,sed,Bash,Sed,我使用sed将XML文件中包含的值放入变量中 该文件如下所示: <?xml version="1.0" encoding="UTF-8"?> <DataBase> <DataBaseName>fry</DataBaseName> </DataBase> 我正在这样做: dbName=$(sed -n 's|<DataBaseName>\(.*\)</DataBaseName>|\1|p' pat
<?xml version="1.0" encoding="UTF-8"?>
<DataBase>
<DataBaseName>fry</DataBaseName>
</DataBase>
我正在这样做:
dbName=$(sed -n 's|<DataBaseName>\(.*\)</DataBaseName>|\1|p' path/to/DataBase.xml)
它正确地抓取油炸食品,但是它在开始时有一个标签。我的sed命令有什么错误?请尝试:
dbName=$(sed -n 's|\s*<DataBaseName>\(.*\)</DataBaseName>|\1|p' path/to/DataBase.xml)
您还需要匹配可能的空白字符。您没有匹配完整的行 试试这个:
dbName=$(sed -n 's|[ \t]*<DataBaseName>\(.*\)</DataBaseName>|\1|p' path/to/DataBase.xml)
此命令:
sed -n 's|[ \t]*<DataBaseName>\(.*\)</DataBaseName>|\1|p' sed_file
只是因为你的正则表达式不匹配
sed -n 's|[ \t]*<DataBaseName>\(.*\)</DataBaseName>|\1|p' sed_file
frysomething