sed脚本删除一行中包含第二个逗号的所有字符

And*_*rew 2 sed

任何人都可以解释如何使用sed删除CSV文件中一行上的所有字符,包括第二个逗号?

典型线的开头可能看起来像

1234567890,ABC/DEF,和数字在第一列中的数目而变化,即可能存在以随机顺序9个或10或11个独立的数字,在第二列中的字母也可以是随机的.这种随机性和变化的长度使得不可能使用任何显式模式搜索.

fal*_*tro 7

你可以像这样用sed做到这一点

sed -e 's/^\([^,]*,\)\{2\}//'
Run Code Online (Sandbox Code Playgroud)

不是100%肯定语法,我尝试过,它似乎工作.它会删除零或多个任何东西,但逗号后面跟一个逗号,所有这些都连续两次匹配.

但更容易使用切割,就像这样

cut -d, -f3-
Run Code Online (Sandbox Code Playgroud)

它将使用逗号作为分隔符,并打印字段3及以上.

编辑:
只是为了记录,sed和cut都可以使用文件作为参数,只需将其附加到最后

cut -d, -f3- myfile.txt
Run Code Online (Sandbox Code Playgroud)

或者您可以通过它们管道程序的输出

./myprogram | cut -d, -f3-
Run Code Online (Sandbox Code Playgroud)