如何删除M字符?

lbe*_*gni 2 windows bash cat

我有一个从Windows生成的文件,我必须粘贴到linux下的脚本中.我的脚本工作正常,除了在每一行的末尾我得到了一个^ M char.

如何用bash删除它?

目前我的脚本是:

#/bin/bash
IFS=$'\n'
for CUSTOMER in `cat exp.csv`
do
    echo $CUSTOMER
done
Run Code Online (Sandbox Code Playgroud)

zer*_*erm 5

^M 应该是 windows 换行符 \r,因此你只需要删除所有 \r 你可以使用 tr 工具来实现这一点,你可以从你的 bash 脚本中调用它,这是来自维基百科文章(我没有验证它):

tr -d '\r' < inputfile > outputfile
Run Code Online (Sandbox Code Playgroud)

因此,从 bash 应该是这样的

VAR=`echo -n $CUSTOMER | tr -d '\r'`
Run Code Online (Sandbox Code Playgroud)


Cal*_*ngh 5

呼叫DOS2UNIX的exp.csv之前进一步处理.

  • `cat`是不必要的. (2认同)