私が書いているスクリプトには2つのbash変数があります。
num1=site_2734
num2=796
文字列を含む svg ファイルを読み取る必要があります。
http://xxx-xxx.xxx.com/var/site_2734/storage/issues/796/svg/img/page-002-img1.jpg?q=80
最初の部分を「None」に置き換えて「?q=10」を削除して、次のようにしたいと思います。
page-002-img1.jpg
だから私はsedでこれを試しましたが、うまくいきませんでした。
sed -i -e 's/\(http:\/\/xxx-xxx.xxx.com\/var\/$num1\/storage\/issues\/$num2\/svg\/img/\).*\(\)/\1\2/'
どんな助けでも大変感謝します。
答え1
ファイル名自体にスラッシュや疑問符が含まれていないことを知ることは非常に簡単です。
sed --in-place 's_http.*/img/\(.*\)?q=[0-9][0-9]*_\1_' inputfile
サイト番号と発行番号が必要な場合は、コマンドを組み合わせてsed
変数として実装できます。
sedcmd='s_http.*'$num1'.*'$num2'.*/img/\(.*\)?q=[0-9][0-9]*_\1_'
sed --in-place "$sedcmd" inputfile