Awk 删除第一列分隔符

Awk 删除第一列分隔符,awk,sed,Awk,Sed,我有一个带有的CSV文件分隔符: 3;85;2;8;9;5;8;6 7;4;5;6;2;2;4;6 我希望得到以下输出: 38528;9;5;8;6 7456;2;2;4;6 通常,我试图从前三列中删除分隔符。在sed中: $ sed -E 's/([^;]*);([^;]*);([^;]*);/\1\2\3/' infile 38528;9;5;8;6 7456;2;2;4;6 这将查找并捕获模式“一个非分号序列”,后跟一个分号,三次,并替换为不包含分号的捕获序列。awk方法 awk '

我有一个带有
的CSV文件分隔符:

3;85;2;8;9;5;8;6
7;4;5;6;2;2;4;6
我希望得到以下输出:

38528;9;5;8;6
7456;2;2;4;6
通常,我试图从前三列中删除分隔符。

在sed中:

$ sed -E 's/([^;]*);([^;]*);([^;]*);/\1\2\3/' infile
38528;9;5;8;6
7456;2;2;4;6

这将查找并捕获模式“一个非分号序列”,后跟一个分号,三次,并替换为不包含分号的捕获序列。

awk方法

awk 'BEGIN{FS=OFS=";"} {print $1$2$3$4,$5,$6,$7,$8}' input_file
38528;9;5;8;6
7456;2;2;4;6
对于sed:

sed 's/;//;s/;//;s/;//' file
(将
替换为零,3次)

$awk'{for(i=1;i尝试:


在第一个位置替换分号,然后再执行两次相同的操作,因为将执行一次,例如第一个位置,然后第二次出现将成为第一个分号。

删除前三列分隔符的黑客版本:

sed -f <(echo "s/;//;"{,,}) file
sed-f
sed 's/;//1;s/;//1;s/;//1'   Input_file
sed -f <(echo "s/;//;"{,,}) file