sed如何搭配陣列來使用? - Linux

Table of Contents


假設檔案array.txt內容為
array={"Tom","Mary","Jason","Brown","Jason","Smith","Lora","Cook","Bill",
"May","Lily","Ivy","Nick","Michael","James","Mark","Steve","Jay","Morris",
"Tim"}

執行
cat array.txt | sed -e 's/array={\([^{]*\)}/\1/g' | sed -e "s/\"/'/g" |
awk '{ print "array={"$0"}" }'

結果
array={'Tom','Mary','Jason','Brown','Jason','Smith','Lora','Cook','Bill',
'May','Lily','Ivy','Niko','Michael','James','Mark','Steve','Jay','Morris',
'Tim'}

Is this what you are looking for?

※ 引述《Arim (Arim5566)》之銘言:
: 想請教一下
: 如果我目前有一個陣列
: array={"Tom","Mary","Jason"....}
: 如果有一個檔案內容包含這些字串
: 我想利用sed並且讓''取代掉符合陣列裏面的這些字串
: 但是直接用陣列的話sed會出錯(無窮迴圈)
: 當然這個陣列還滿大的,大概30個到40個
: 如果搭配參數-e的話要寫滿長的@@
: 不知道有沒有較好的方法?
: 謝謝各位板友

--

All Comments

Kama avatarKama2011-01-28
恩...我是原po..應該是說...如果有一個檔案內容包含陣列裏面
Xanthe avatarXanthe2011-01-29
的這些字串@@