gpt4 book ai didi

shell - 删除 CR 行终止符

转载 作者:行者123 更新时间:2023-12-04 13:06:06 25 4
gpt4 key购买 nike

首先我想说我已经阅读了 this post但是我仍然对 CR line terminators 有问题.

有一个文件叫build_test.sh , 我编辑在 leafpad它可以直接显示在 Vim :

cp ~/moonbox/llvm-2.9/lib/Transforms/MY_TOOL/$1 test.cpp 
cd ~/moonbox/llvm-obj/tools/TEST_TOOL/
make
make install
cd -

然而:
  • 使用 cat build_test.sh它什么都不输出。
  • 使用 more build_test.sh它输出:cd - install/llvm-obj/tools/TEST_TOOL/Y_TOOL/$1 test.cpp
  • 使用 less build_test.sh它输出:cp ~/moonbox/llvm-2.9/lib/Transforms/MY_TOOL/$1 test.cpp^Mcd ~/moonbox/llvm-obj/tools/TEST_TOOL/^Mmake^Mmake install^Mcd -
  • file build_test.sh的结果是:
    build_test.sh: ASCII text, with CR line terminators

    关注 this post , ^M不再存在但是没有更多的换行符:-( file build_test_no_cr.sh的结果就是现在:
    build_test_nocr.sh: ASCII text, with no line terminators

    解决方法可见 here .

    但是我还是想知道为什么cat不显示任何内容和 more显示如此奇怪的结果。另外为什么dos2unixset fileformat=unix在 Vim 中失败 对于这种情况。

    ps:我猜也许我的编辑器(Vim 或leafpad?)只生成 \r而是 \n对于换行符。怎么会这样?

    最佳答案

    简单 \r换行符的终止符是“旧 Mac”行终止符,奇怪的是,2012+ 年的编辑器甚至生成带有此类行终止符的文件......无论如何,您可以使用 mac2unix命令,它是 dos2unix 的一部分分配:

    # Edits thefile inline
    mac2unix thefile
    # Takes origfile as an input, outputs to dstfile
    mac2unix -n origfile dstfile

    此命令不会删除已经预期行终止符的文件,这是一个奖励。并且反向( unix2mac )也存在。

    请注意 mac2unixdos2unix -c mac 相同.

    关于shell - 删除 CR 行终止符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14080306/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com