1

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 コマンドで何が間違っていますか?

4

2 に答える 2

0

試す:

dbName=$(sed -n 's|\s*<DataBaseName>\(.*\)</DataBaseName>|\1|p' path/to/DataBase.xml)

(可能性のある空白文字も一致させる必要があります。

于 2013-08-05T06:37:43.607 に答える
0

完全な行と一致していません。

これを試して:

dbName=$(sed -n 's|[ \t]*<DataBaseName>\(.*\)</DataBaseName>|\1|p' path/to/DataBase.xml)

とをスキップするtabsと、とspacesだけが行から削除されます。他のすべての文字は残ります。詳細については、このチュートリアルを確認してください。<DataBaseName></DataBaseName>

たとえば、ファイルを次のように変更するとします。

<DataBaseName>fry</DataBaseName>something

このコマンド:

sed -n 's|[ \t]*<DataBaseName>\(.*\)</DataBaseName>|\1|p' sed_file

出力します:

frysomething

正規表現が一致しなかったためsomethingです。

于 2013-08-05T06:38:16.153 に答える