2009-06-04 73 views
0

我也行:分割剩餘的字段SED/AWK

MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m 

,並希望將其轉換爲(加上現場2->ñ引號):

export MAVEN_OPTS="-XX:MaxPermSize=128m -Xms128m -Xmx768m" 

回答

0
echo "MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m" | sed 's/=/="/; s/$/"/' 
0

一些awk的可能性(在Ubuntu中測試)

echo "MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m" | awk 'BEGIN{FS="MAVEN_OPTS="; OFS="MAVEN_OPTS=\""; ORS="\"\n"} {print $1,$2 }' 

echo "MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m" | awk 'BEGIN{FS="MAVEN_OPTS="; OFS="MAVEN_OPTS=\"";} {print $1,$2 "\""}' 
0

另一個awk解決方案:

echo "MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m" | 
awk -F= 'BEGIN {OFS=FS} {$2="\"" $2; $NF=$NF "\""; print}' 
0

這是另一種方法:

$ echo 'MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m' | 
awk 'match($0,/=.*/)&&$0="export "substr($0,1,RSTART-1)"="substr($0,RSTART+1)' 

如果你有GAWK:

$ echo 'MAVEN_OPTS=-XX:MaxPermSize=128m -Xms128m -Xmx768m' | 
gawk '$0=gensub(/^(.*)=(.*)/,"\\1=\\2",1)'