我想用其他字符替換一些字符串(例如,「GG」與「GGX」,「GG」與「GGX」,「FG」與「FGX」等)在使用shell命令的大csv文件的第一列中。csv文件用三個字符替換兩個字符串
我知道我需要像
big.csv shell_commands big.csv
,但我不知道的awk或sed的
我想用其他字符替換一些字符串(例如,「GG」與「GGX」,「GG」與「GGX」,「FG」與「FGX」等)在使用shell命令的大csv文件的第一列中。csv文件用三個字符替換兩個字符串
我知道我需要像
big.csv shell_commands big.csv
,但我不知道的awk或sed的
使用SED,以取代 「GG」 的所有實例「 GGX」在big.csv
會是什麼樣子:
sed 's/^GG/GGX/g' big.csv >big_translated.csv
如果您要更換多模式,您可以通過矽分離的Sed使用多個替換命令離子研究。
sed 's/^GG/GGX/g; s/^FG/FGX/g' big.csv >big_translated.csv
的^
字符表示行首,並確保我們只能編輯CSV的第一個字段。
awk 'BEGIN{ r["GG"] = "GGX"; r["FG"] = "FGX" }
{ for(k in r) if(gsub(k, r[k], $1) break } 1' input-file
中斷是爲了防止多重替換。
這個怎麼樣?
sed -i "s/^\(..\),/\1X,/" big.csv
或者,如果你到了那裏的一些空間這一點:
sed -i "s/^\([^ ][^ ][ ]*\),/\1X,/" big.csv
謝謝,我想這樣做是爲了在CSV第一列串,也將「S/GG/GGX/G」替換「GG」? – Yoda
我想我需要awk – Yoda
's/GG/GGX/g'會將「GG」轉換爲「GGX」。 's/GG/GGX/g'會將「GG」轉換爲「GGX」。 – cmh