Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 使用sed从XML文件中提取一个值,我得到的是开头的空白。我怎样才能避免呢?_Bash_Sed - Fatal编程技术网

Bash 使用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

我使用sed将XML文件中包含的值放入变量中

该文件如下所示:

<?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