我想删除第3列并在输出文件上保留相同的结构。
输入文件
12,10,10,10 10,1
12,23 1,45,6,7
11 2,33,45,1,2
1,2,34,5,6
我试过
awk -F, '!($3="")' file | awk -v OFS=',' '{$1=$1}1'
12,10,10,10,1
12,23,1,6,7
11,2,33,1,2
1,2,5,6
输出所需
12,10,10 10,1
12,23 1,6,7
11 2,33,1,2
1,2,5,6
感谢您的帮助
答案 0 :(得分:2)
最好在这里使用FormData
:
handleSubmit(event) {
event.preventDefault();
const data = new FormData(event.target);
// Assuming you are using fetch
fetch('url', {
method: 'POST',
body: data,
});
}
搜索正则表达式:
sed
:开始sed -E 's/^(([^,]*,){2})[^,]*,/\1/' file
12,10,10 10,1
12,23 1,6,7
11 2,33,1,2
1,2,5,6
:启动第一个捕获组
^
:启动第二个捕获组(
:匹配0个或更多非逗号字符后跟逗号(
:结束第二个捕获组。 [^,]*,
表示匹配2对以上匹配){2}
:结束第一个捕获组{2}
:匹配0个或更多非逗号字符后跟逗号<强>替换强>
)
:对已捕获的组#1的反向引用答案 1 :(得分:2)
sed
解决方案:
sed -E 's/^([^,]+,[^,]+,)[^,]+,/\1/' file
^
- 字符串的开头[^,]+
- 匹配除,
\1
- 指向第一个已捕获的括号内组(...)
输出:
12,10,10 10,1
12,23 1,6,7
11 2,33,1,2
1,2,5,6
答案 2 :(得分:2)
在awk中:
$ awk 'BEGIN{FS=OFS=","}{for(i=3;i<NF;i++)$i=$(i+1);NF--}1' file
12,10,10 10,1
12,23 1,6,7
11 2,33,1,2
1,2,5,6
答案 3 :(得分:2)
Perl解决方案:
perl -l -aF/,/ -ne 'splice @F, 2, 1; print join ",", @F'
-l
从输入中删除换行符并将其添加到print
s -n
逐行读取输入行-a
将每一行拆分为@F数组-F
指定如何拆分(/,/
表示逗号)