我有一个.csv文件,表示单个列中的所有数据以及该数据中的所有数据,它都是以管道分隔的。
目前:
COLUMN A, COLUMN B, COLUMN C
info, info2, info3
我可以用什么bash命令打入每个列?第一行包含标题。
示例:
List<? extends IResource>
答案 0 :(得分:0)
假设您被允许对列标题进行硬编码,请使用以下代码:
echo "COLUMN A, COLUMN B, COLUMN C" > out.csv && sed -e '1d;s/|/, /g' in.csv >> out.csv
示例:
$ cat in.csv
COLUMN A
info|info2|info3
$ echo "COLUMN A, COLUMN B, COLUMN C" > out.csv && sed -e '1d;s/|/, /g' in.csv >> out.csv
$ cat out.csv
COLUMN A, COLUMN B, COLUMN C
info, info2, info3
答案 1 :(得分:0)
您也可以在awk中尝试 -
如果您的标题已经是csv格式 -
awk -F "|" 'NR==1 { print $0} ; NR > 1 {print $1","$2","$3}' file.txt
对于第一行(NR == 1),它打印出整行,其余的则以逗号分隔。
如果您的标题也是竖线分隔的,则更容易 -
awk -F "|" ' {print $1","$2","$3}' file.txt