这是一个关于让Mac和PC相互配合的问题。
SCENARIO:我使用的是Mac。我有一堆数据文件,需要一些切片和切块才能与可视化工具包一起使用。可视化软件仅适用于PC,因为我有一台虚拟Windows机器,所以没问题。 awk
是我解决此问题的首选工具,它可以很好地生成输入文件。不幸的是,当我为可视化工具生成输入文件并将它们发送到PC时,没有新行;即在Mac上我打开(比如说)output001.txt
:
stk.v.10.1
# file automatically generated by awk
BEGIN Ephemeris
...
<columns of data>
...
END Ephemeris
看起来不错,但随后我在电脑上打开并拥有:
stk.v.10.1# file automatically generated by awkBEGIN Ephemeris...<columns of data>...END Ephemeris
我知道PC和Mac会以不同的方式处理行尾字符。我已经读过Mac上的\n
代表换行和字符返回,而PC则单独处理它们,需要\n\r
。但在这里,问题有所不同。我从未使用生成文本文件的\n
字符 - awk
执行了所有换行符。
是否有一个字符可以awk
放在它写入的每一行的末尾,以便PC能够理解换行的位置?
答案 0 :(得分:2)
当然,将“输出记录分隔符”设为Carriage Return
加Linefeed
。而不是
seq 1 10 | awk '1' | cat -vet
1$
2$
3$
4$
5$
6$
7$
8$
9$
10$
使用
seq 1 10 | awk '1' ORS='\r\n' | cat -vet
1^M$
2^M$
3^M$
4^M$
5^M$
6^M$
7^M$
8^M$
9^M$
10^M$
备注:强>
seq 1 10
只生成1到10之间的数字。
1
相当于true
中的awk
,这意味着它应该只执行默认操作 - 这意味着只打印当前行。
我只是使用cat -vet
来显示回车符,即^M
。