大量 sed 取代文字,怎樣比較快 - Linux

Table of Contents

dear 各位,
我有一個文字檔 a.txt,假設內容是

aaa
bbb
ccc
ddd
eee
...

我想要取代裡面的很多行,
aaa -> AAA
ccc -> CCC
... -> ...

請問用 sed 怎麼做比較快呢

我目前作法是寫很多個 sed
sed -i 's/aaa/AAA/g' a.txt
sed -i 's/ccc/CCC/g' a.txt
sed -i 's/...... ' a.txt
...

雖然能達到效果,可是似乎有點慢

謝謝~

--

All Comments

Ida avatarIda2011-08-25
tr [a-z] [A-Z] < a.txt > A.txt
Tristan Cohan avatarTristan Cohan2011-08-28
sorry, aaa->AAA 是舉例,實際文字是沒有規則的
Emma avatarEmma2011-08-29
tr '[:upper:][:lower:]' '[:lower:][:upper:]' < in > out
Isabella avatarIsabella2011-09-01
或 tr '[a-z][A-Z]' '[A-Z][a-z]' < in > out 都可以 :)
Agatha avatarAgatha2011-09-03
如果經常執行,檔案很大很多,用C/Java寫個程式會比較有效率
Zanna avatarZanna2011-09-06
把sed指令寫成檔案xxx 然後用 sed -f xxx A.txt
你要問的是這個嗎?
Hedda avatarHedda2011-09-07
總之你沒有一定規則的話,可能就寫個對照表,一個一個跑(吧?)
Ina avatarIna2011-09-09
我想問的是,你的目的是要轉大寫嗎?
Iris avatarIris2011-09-13
sed 多個 expression 用 sed -e A -e B target_file