如何从shell脚本中的文件中删除一组字符

时间:2015-05-28 11:53:02

标签: bash shell unix awk sed

我想从文件中删除一组字符。 示例文件如下。我想删除' - '之前的字符。 (包括' - ')在第8列(separator =',')。 样本文件:

aa,bb,cc,dd,ff,rr,dd,ff-gjgj,dd,dd,dd

aa,bb,cc,dd,ff,rr,dd,ff-gjgj,dd,dd,dd

aa,bb,cc,dd,ff,rr,dd,ff-gjgj,dd,dd,dd

aa,bb,cc,dd,ff,rr,dd,ff-gjgj,dd,dd,dd

aa,bb,cc,dd,ff,rr,dd,ff-gjgj,dd,dd,dd

输出文件应如下所示:

aa,bb,cc,dd,ff,rr,dd,gjgj,dd,dd,dd

aa,bb,cc,dd,ff,rr,dd,gjgj,dd,dd,dd

aa,bb,cc,dd,ff,rr,dd,gjgj,dd,dd,dd

aa,bb,cc,dd,ff,rr,dd,gjgj,dd,dd,dd

aa,bb,cc,dd,ff,rr,dd,gjgj,dd,dd,dd

1 个答案:

答案 0 :(得分:4)

您可以使用此awk命令:

awk 'BEGIN{FS=OFS=","} {sub(/^[^-]*-/, "", $8)} 1' file
aa,bb,cc,dd,ff,rr,dd,gjgj,dd,dd,dd
aa,bb,cc,dd,ff,rr,dd,gjgj,dd,dd,dd
aa,bb,cc,dd,ff,rr,dd,gjgj,dd,dd,dd
aa,bb,cc,dd,ff,rr,dd,gjgj,dd,dd,dd
aa,bb,cc,dd,ff,rr,dd,gjgj,dd,dd,dd