任何人都可以解释如何使用sed删除CSV文件中一行上的所有字符,包括第二个逗号?
典型线的开头可能看起来像
1234567890,ABC/DEF,和数字在第一列中的数目而变化,即可能存在以随机顺序9个或10或11个独立的数字,在第二列中的字母也可以是随机的.这种随机性和变化的长度使得不可能使用任何显式模式搜索.
你可以像这样用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)