SEDは空白を新しい行に置き換えます。

SEDは空白を新しい行に置き換えます。

次のテキスト行があります(「ポセイドン」の後にスペースがあります)。

/usr/share/geoserver/data_dir/workspaces/poseidon public/odense_kommune/datastore.xml:17:host">a-postgis1.gues.com</entry>

私はこれを使用して最初の ":"以降のすべてを削除します。

filename=$(sed 's/\:.*$//' <<< $myHost)

結果:

/usr/share/geoserver/data_dir/workspaces/poseidon
public/datastore.xml

それが必要です:

/usr/share/geoserver/data_dir/workspaces/poseidon public/datastore.xml

空白を新しい行に置き換えます。

複数のSEDオプションを試しましたが、問題を特定できませんでした。

私は上記の内容を次のように使用します。

filename=$(sed 's/\:.*$//' <<< $myHost)
echo Filnavn : $filename >> filn.txt

ベストアンサー1

あなたのsed命令は私にとって効果的です。

しかし、必要ありませんsed。使用できます。シェルパラメータ拡張最初から最後まですべてを削除してください:

filename=${myHost%%:*}

おすすめ記事