我想在大 csv 文件的第一列中使用外壳命令。
我知道我需要类似的东西
big.csv shell_commands big.csv
但我不知道 awk 或 sed
awk 'BEGIN{ r["GG"] = "GGX"; r["FG"] = "FGX" }
{ for( k in r ) if( gsub( k, r[k], $1 ) break } 1' input-file
休息是为了防止多次替换。
试试这个(假设你有一次出现的字符串)
awk '{sub("GG","GGX",$0); sub("FG","FGX",$0); print}' temp.txt
这个怎么样?
sed -i "s/^\(..\),/\1X,/" big.csv
或者如果你有一些空间:
sed -i "s/^\([^ ][^ ][ ]*\),/\1X,/" big.csv
使用 sed,用“GGX”替换所有“GG”实例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 的第一个字段。