我已經宣佈在這樣的文件中的變量後Concat的字符:我想之前在bash一句話
export psw=text
而且我想和後前Concat的的'
單個字符變量的值。我的意思是,我想替換這樣的值:
export psw='text'
我該如何做到這一點?
我想通過命令來做到這一點。我不想手動做。
我已經宣佈在這樣的文件中的變量後Concat的字符:我想之前在bash一句話
export psw=text
而且我想和後前Concat的的'
單個字符變量的值。我的意思是,我想替換這樣的值:
export psw='text'
我該如何做到這一點?
我想通過命令來做到這一點。我不想手動做。
簡單和易於使用Perl
perl -i -lpe 's/\=(\w+)$/='"'\\1'"'/' your-file
-i
保存在-。安迪
輸出
export psw='text'
它是如何工作
s/.../
這部分比賽要你wnat
/.../
這部分是爲替代您有部分已匹配。
因此,您在第一步中匹配=(\w+)$
和等號和單詞,它應該是行的末尾。好了之後,你改變這部分
/='"'\\1'"'
那意味着把平等燎和一個單引號什麼,通過比賽組操作員()
匹配,然後又單引號。
所以它匹配:=text
然後用='text'
-i
替代它是保存結果 -p
是打印屏幕+ while循環
-l
換上新線
-e
一個臨時方案。
只是玩它沒有-i
然後你一點一點地瞭解它是如何工作的。
注意
'"'
只是爲了逃避在bash單引號。
\\1
以及這一個
這sed
命令將做你的工作:當它們不存在
sed -i.bak -E "s/(export[ \t]+[[:alnum:]]+=)([^']+)/\1'\2'/" file
上述表達式只會增加單引號。
你能解釋一下我的線嗎? – Lost
是的,這正是我在說的 – Lost