如何将Linux终端命令输出追加为CSV文件新行并修正格式问题
问题原因
你当前使用的命令将date和wc输出的两个换行符全部替换为了逗号,导致每次命令执行完写入的内容末尾没有换行符,下一次执行的输出就会直接拼接在当前行的尾部,最终所有数据都挤在同一行。
调整方案
你可以选择以下任意一种修改后的命令实现需求:
方案1(简洁写法,推荐)
直接通过命令替换拼接两个值,echo默认会在输出末尾追加换行符:
echo "$(date +%Y-%m-%d),$(wc -l < file.txt)" >> output.csv
优化说明:去掉了多余的cat管道,直接将文件导入wc计算行数,执行效率更高
方案2(在原命令基础上修改)
在原命令的基础上新增sed替换,将末尾多余的逗号替换为换行符:
{ date +%Y-%m-%d; wc -l < file.txt; } | tr '\n' ',' | sed 's/,$/\n/' >> output.csv
内容的提问来源于stack exchange,提问作者Robert Carroll
相关产品推荐
相关产品推荐

