首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批处理文件+将LF转换为CR+LF

批处理文件+将LF转换为CR+LF
EN

Stack Overflow用户
提问于 2010-06-24 20:48:46
回答 2查看 12.6K关注 0票数 5

我们有一个名为LineFeed.sh的shell脚本文件,它具有将换行符(LF)转换为回车符+ LineFeed的功能。我们希望windows中的批处理文件也能做到这一点。有可能吗?

Linux外壳文件

代码语言:javascript
复制
E_WRONGARGS=65
cat OutputList|while read -r Line 
do 
if [ -z "$Line" ]
then
echo "Usage: `basename $0` filename-to-convert"
exit $E_WRONGARGS
fi
NEWFILENAME=$Line.unx
CR='\015'  # Carriage return.
       # 015 is octal ASCII code for CR.
       # Lines in a DOS text file end in CR-LF.
       # Lines in a UNIX text file end in LF only.
tr -d $CR < $1 > $NEWFILENAME // here its deleting CR but i need to append LF
# Delete CR's and write to new file.
done
echo "Original DOS text file is \"$1\"."
echo "Converted UNIX text file is \"$NEWFILENAME\"."
exit 0
EN

回答 2

Stack Overflow用户

发布于 2010-06-25 02:19:53

你可以在this Wikipedia page上找到一种方法

代码语言:javascript
复制
TYPE unix_file | FIND "" /V > dos_file

请记住,您不能将输出重定向到您正在读取的同一文件。这适用于几乎所有的系统和shell,因此有必要进行额外的重命名。

这里的关键是type知道如何读取LF行结尾,然后find会将它们转换为CRLF。单独的type不会对输出做任何事情(应该是这样的,因为使用一个简单地转储文件内容的命令来处理它们是不好的:-))。

票数 13
EN

Stack Overflow用户

发布于 2018-07-18 13:04:16

在通常使用type命令执行此操作的方法的基础上,您还可以转换所有文件(或您喜欢的任何通配符),并使用以下命令将它们转储到临时文件夹中:

代码语言:javascript
复制
md temp
for %a in (*.*) do type "%a" | find /v "" > temp\"%a"

如果总体思路是替换原始文件,则只需将文件移回临时位置并删除临时文件夹即可

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3110031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档