例如,我有一个csv文件如下,
12345432|1346283301|5676438284971|13564357342151697 ...
87540258|1356433301|1125438284971|135643643462151697 ...
67323266|1356563471|1823543828471|13564386436651697 ...
以及数百个列但我想删除前三列并保存到新文件(如果可能的话,同一文件对我来说会更好)
这是我想要的结果。
13564357342151697 ...
135643643462151697 ...
13564386436651697 ...
我一直在寻找和尝试,但我无法做到。以下是我的代码。
awk -F'|' '{print $1 > "newfile"; sub(/^[^|]+\|/,"")}1' old.csv > new.csv
感谢有人可以帮助我。谢谢。
答案 0 :(得分:3)
您可以使用cut
:
cut -f4- -d'|' old.csv > new.csv
答案 1 :(得分:1)
这就是你要找的东西:
awk -F '|' '{$1=$2=$3=""; print $0}' oldfile > newfile
但是它会有前导空格,所以添加以下替换:
sub(/ ^ [\ t \ |] + /,"") - >更改为 sub(/ ^ [\ t \ |] + /,"")(从列删除中转义前导' |')
awk -F '|' '{$1=$2=$3="";OFS="|";sub(/^[ \t\|]+/,"") ;print $0}' oldFile > newFile
答案 2 :(得分:1)
@Heng:试试:
awk -F"|" '{for(i=4;i<=NF;i++){printf("%s%s",$i,i==NF?"\n":"|")};}' Input_file
或强>
awk -F"|" 'FNR==1{++e;fi="REPORT_A1_"e;} {for(i=4;i<=NF;i++){printf("%s%s",$i,i==NF?"\n":"|") > fi}}' Input_file1 Input_file2 Input_file3
您可以根据需要将此命令的输出重定向到文件中。
修改强>
var json = $.ajax({
url: (serviceType == "wcf" ? wcfServicesUrl : servicesApi) + wcfServiceUri,
type: type,
data: data,
crossDomain: true,
contentType: "application/json",
dataType: "json",
xhrFields: {
withCredentials: true
},
)};
答案 3 :(得分:0)
awk -F\| '{print $NF}' file >newfile
13564357342151697 ...
135643643462151697 ...
13564386436651697 ...