需要在Unix脚本中添加逻辑从Windows转换为Unix格式

需要在Unix脚本中添加逻辑从Windows转换为Unix格式,unix,Unix,我有一个脚本需要添加逻辑,如果有人从winscp添加文件,并且在传输时不转换为纯文本。所以有一段时间我们得到了一些特殊字符(^m)的值,我想删除它们 这是我的密码 cd $HOME_DIR if [ $SHELL_STEP = 'step2' ]; then if [ -s $DATA_DIR/$DATA_FILE.txt ]; then echo "The data file is present." cat -v new_reguest.txt $ awk '{ sub("\r$",

我有一个脚本需要添加逻辑,如果有人从winscp添加文件,并且在传输时不转换为纯文本。所以有一段时间我们得到了一些特殊字符(^m)的值,我想删除它们 这是我的密码

cd $HOME_DIR
if [ $SHELL_STEP = 'step2' ]; then



if [ -s $DATA_DIR/$DATA_FILE.txt ]; then echo "The data file is present." cat -v new_reguest.txt $ awk '{ sub("\r$", ""); print }' new_request.txt > new_request.txt echo "Data file $DATA_FILE.txt found in $DATA_DIR directory." >> $LOG_FILE echo "" >> $LOG_FILE STATUS='good' else echo "The data file has not arrived yet." fi

我尝试使用
awk
命令,但看起来不太好


请提供帮助。

大多数实现将提供类似于
dos2unix
d2u
的工具,以从行尾删除回车。您可以使用以下内容:

dos2unix new_request.txt >new_request_2.txt
mv new_request_2.txt new_request.txt
如果没有
dos2unix
命令,则可以使用
sed
执行相同的操作:

sed -i 's/\r$//' new_request.txt

-i
用于就地编辑。如果您的
sed
版本没有这个功能,您将不得不使用上面
dos2unix
代码中使用的相同临时文件技巧。

大多数实现将提供类似于
dos2unix
d2u
的工具来删除行尾的回车。您可以使用以下内容:

dos2unix new_request.txt >new_request_2.txt
mv new_request_2.txt new_request.txt
如果没有
dos2unix
命令,则可以使用
sed
执行相同的操作:

sed -i 's/\r$//' new_request.txt

-i
用于就地编辑。如果您的
sed
版本没有此功能,您将不得不使用上面
dos2unix
代码中使用的相同临时文件技巧。

我认为您正在寻找此功能:我认为您正在寻找此功能: