我想用其他字符串替换少数字符串(例如使用shell命令在大型csv文件的第一列中添加"GG“和"GGX”、"GG“和"GGX”、"FG“和"FGX”等)。
我知道我需要这样的东西
big.csv shell_commands big.csv
但是我不知道awk或者sed
发布于 2013-01-23 23:58:37
使用sed,将big.csv中的所有"GG“实例替换为"GGX”将如下所示:
sed 's/^GG/GGX/g' big.csv >big_translated.csv如果需要替换多个模式,可以在sed中使用多个用分号分隔的replace命令。
sed 's/^GG/GGX/g; s/^FG/FGX/g' big.csv >big_translated.csv^字符表示行的开始,并确保我们只编辑csv的第一个字段。
发布于 2013-01-24 03:37:20
awk 'BEGIN{ r["GG"] = "GGX"; r["FG"] = "FGX" }
{ for( k in r ) if( gsub( k, r[k], $1 ) break } 1' input-file中断的存在是为了防止多次替换。
发布于 2013-01-24 14:26:30
试试这个(假设你有一次出现的字符串)
awk '{sub("GG","GGX",$0); sub("FG","FGX",$0); print}' temp.txt
https://stackoverflow.com/questions/14483771
复制相似问题