我試圖用我的腳本在一個檔案afile.xyz中添加一行。這是我目前用sed完成的作業:
n="$(grep " 。 method" "$m"| grep "onCreate(Landroid/os/Bundle;)V")"
sed -i '' -e '/$n/ a
"test", /Users/username/Documents/afile.xyz
我得到的錯誤是:
"onCreate(Landroid/ ...": bad flag in substitute command: 'g'。
我如何解決這個問題?請幫助。謝謝。
編輯:n的內容
。method protected onCreate(Landroid/os/Bundle;)V
uj5u.com熱心網友回復:
2個問題:
- 由于sed主體是單引號,變數
$n將不被展開, - 在
$n中的正則運算式包含/稀釋劑。
試一下:
n=$(...)
nn=${n/////} # escape all slashes[/span
sed -i '' '/'"${nn}"'/ a ...
單引號的sed體被中斷,以追加雙引號的shell變數。
uj5u.com熱心網友回復:
你也可以為RE使用一個不同的分隔符:
sed -i '' -e "#$n# a
"test""/Users/username/Documents/afile.xyz
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/324963.html
標籤:
下一篇:我如何為別名添加一個標志?
