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