我們收到了18,000個CSV文件,每個文件有2行文本。編輯csv文件
這兩行應該是一行,用逗號隔開。
FK1QG5QL
B8:9D:7D
應該出現
FK1QG5QL,B8:9D:7D
我試圖刪除從返回第一行並用逗號替換它。
我們收到了18,000個CSV文件,每個文件有2行文本。編輯csv文件
這兩行應該是一行,用逗號隔開。
FK1QG5QL
B8:9D:7D
應該出現
FK1QG5QL,B8:9D:7D
我試圖刪除從返回第一行並用逗號替換它。
這個會工作嗎?如果你想改變,你可以使用下一個版本的每一個文件
for f in *.csv; do awk 'BEGIN {l=""} !/^ *$/ {if (l!="") {l=l","}; l=l$0} END {print l}' "$f"; done > combined
:
for f in *.csv; do awk 'BEGIN {l=""} !/^ *$/ {if (l!="") {l=l","}; l=l$0} END {print l}' "$f"; done
您可以在上面的命令的輸出重定向到一個文件中。它會創建另一個名爲* .copy的文件:
for f in *.csv; do awk 'BEGIN {l=""} !/^ *$/ {if (l!="") {l=l","}; l=l$0} END {print l}' "$f" > "$f".copy; done
你是否有命令paste
?
for f in *; do
mv "$f" "$f.bak" && paste -sd "," "$f.bak" > "$f"
done
# test first before uncommenting next line
# rm *.bak
沒有貼,你可以嘗試其他的解決方案:
head -1 input.csv | tr '\n' ',' ; tail -1 input.csv
cat input.csv | tr "\\n" "," | sed 's/,$/\n/'
printf -v oneline "%s," $(cat input.csv); echo "${oneline%,}"
sed 'N;s/\n/,/' input.csv
set -- $(cat input.csv); IFS=,; echo "$*"
問題被編輯。抱歉。 – cducasse