【发布时间】:2016-10-01 16:08:46
【问题描述】:
我有一个包含动态列的 csv 文件。
我尝试使用awk -F , 'NF>1' resul1.txt,但它仍然会打印所有列。
因为它有动态列。
使用 print $1 打印到最后是相当困难的。
【问题讨论】:
我有一个包含动态列的 csv 文件。
我尝试使用awk -F , 'NF>1' resul1.txt,但它仍然会打印所有列。
因为它有动态列。
使用 print $1 打印到最后是相当困难的。
【问题讨论】:
试试这个 awk 命令:
awk -F, '{$1=""}1' input.txt | awk -vOFS=, '{$1=$1}1' > output.txt
【讨论】:
试试substr函数:
substr(string, start [, length ]) 返回一个长度字符长度的字符串子字符串,从字符号 start 开始。字符串的第一个字符是字符 第一。例如 substr("washington", 5, 3) 返回 "ing"。*
awk -F, '{print substr($0,length($1)+1+length(FS))}' file
【讨论】:
你可以使用cut:
cut -d',' -f2- yourfile.csv > output.csv
解释:
-d - 将分隔符设置为,
-f - 要打印的字段2- - 从 2 字段到行尾与awk:
awk -F, '{sub(/[^,]+,/,"",$0);}1' OFS=, yourfile.csv > output.csv
与sed:
sed -i.bak 's/^[^,]\+,//g' yourfile.csv
-i - 就地编辑【讨论】: