0
我想更換任何看起來像文本替換,同時擴大變量,用它們作爲字符串文字,並添加一個新行
if (Thing *thing1 = Stuff) {
與
Thing *thing1 = Stuff;
if (thing1) {
基本上採取申報出來的,如果聲明。
我有所有的部分,我看到他們是正確的,我只是有與更換的麻煩
grep ' if (.* = .*) {' $file | while read -r line ; do
inside="$(echo "$line" | cut -d "(" -f2 | cut -d ")" -f1);"
object="$(echo $(echo "$inside" | cut -d "*" -f2 | cut -d "=" -f1) | xargs)"
newIF=" if ($object) {"
replacement="$inside\n$newIF"
line_regexp="$(echo "$line" | sed -e 's/[]\/$*.^|[]/\\&/g')"
replacement_regexp="$(echo "$replacement" | sed -e 's/[\/&]/\\&/g')"
sed -i.bak "s/$line_regexp/$replacement_regexp/g" $file
done
編輯感謝:https://superuser.com/questions/422459/substitution-in-text-file-without-regular-expressions
現在我只需要弄清楚如何把 「\ n」 爲實際的換行符
將b蟒蛇非常簡單?你從一開始就使用'sed'的原因是什麼? – beroe
@beroe我已經使用bash。呃很多,因爲我不知道如何做文本替換?我打開其他選項 – user101
嘗試'echo'if(Thing * thing1 = Stuff){'| perl -pe's/if \ s *(\(。* \ *(\ S +)。* \))\ s * {/ $ 1; \ nif($ 2){/'' – Sundeep