我有一个文本文件/tmp/some.txt
下面值如何根据shell脚本中的行创建CSV文件?
JOHN YES 6 6 2345762
SHAUN NO 6 6 2345748
我想创建以下格式的csv文件(即基于行。不是基于列)。
JOHN,YES,6,6,2345762
SHAUN,NO,6,6,2345748
我想下面的代码
for i in `wc -l /tmp/some.txt | awk '{print $1}'`
do
awk 'NR==$i' /tmp/some.txt | awk '{print $1","$2","$3","$4","$5}' >> /tmp/some.csv
done
这里wc -l /tmp/some.txt | awk '{print $1}'
将获得价值2(在文本文件中即2行)。 ,并且对于每一行awk 'NR==$i' /tmp/some.txt | awk '{print $1","$2","$3","$4","$5}'
将打印5个字段到some.csv
文件,文件以逗号分隔。
当我分别执行每个命令它将工作。但是当我把它作为一个shell脚本时,我得到空some.csv
文件。
为什么你不只是更换的空间所有块与一个逗号? – fedorqui