次のテキスト行があります(「ポセイドン」の後にスペースがあります)。
/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
答え2
代わりにカットを使用してください。
cut -d ':' -f 1
最初の項目より前のすべての項目が選択されます:
。
答え3
あなたのsed
命令は私にとって効果的です。
$ cat test
/usr/share/geoserver/data_dir/workspaces/poseidon public/odense_kommune /datastore.xml:17:host">a-postgis1.gues.com</entry>
SED
$ cat test | sed 's/\:.*//'
/usr/share/geoserver/data_dir/workspaces/poseidon public/odense_kommune/datastore.xml
を使用して問題を解決できない場合、またはをsed
試してください。cut
awk
切る
$ cat test | cut -d ':' -f1
/usr/share/geoserver/data_dir/workspaces/poseidon public/odense_kommune/datastore.xml
AWK
$ cat test | awk -F ':' '{printf $1}'
/usr/share/geoserver/data_dir/workspaces/poseidon public/odense_kommune/datastore.xml