换行符 ‘\n’
回车符 '\r'
windows系统每行结尾:“\r\n”
unix系统每行结尾:"\n"
mac系统每行结尾:“\r”
在mac中写shell逐行处理文本,会遇到换行符解析问题,纪录解决方法。
逻辑代码如下:(输出每一行的内容)
#!/bin/sh
while read line
do
echo $line
done < list.txt
在这里解析每一行的文本时候会遇到换行符的问题。因为是从windows上传文本到mac,所以需要做一下特殊处理。
处理方法如下:
思路:利用cat -v list.txt可以显示.txt中的\r(显示为^M),然后替换掉^M。
1: 输入:cat -v list.txt > list_new.txt
cat list.txt可见行尾有^M,我们把^M去掉:
2: vim te.txt,在vim中输入替换命令
:%s/\^M//g
问题解决。