tail -1 file1 >> file2 不带 \n

tail -1 file1 >> file2 不带 \n

这可能很简单,但环顾四周后,我找不到解决问题的方法,我正在使用 tail -1 file1 从 file1 恢复最后一行,并希望将其添加到作为表的现有文件中,这样我就可以填充列(用逗号分隔)通过执行以下操作:

tail -1 file1 >> file2
echo "," >> file2
tail -1 file3 >> file2
echo "," >> file2
....

但我的问题是每个新条目都是在新行中完成的。我怎样才能防止这种情况?

此致

答案1

tail -1提取指定文件的最后一行,包括最后一行结束的换行符。您需要去掉这个换行符。

命令替换$(…)会去掉尾随的换行符。因此,将tail调用放入命令替换中。

printf '%s,%s\n' "$(tail -n1 file1)" "$(tail -n1 file3)" >>file2

根据您的 shell 和数据,echo "$(tail -n1 file1),$(tail -n1 file3)" >>file2可能有效也可能无效。如果第一列不以反斜杠开头-并且没有列包含反斜杠,则保证可以工作。

相关内容