我无数
警告:文件结尾处没有换行符
从Windows上最后编辑的一些代码。
在Linux中,如何修复所有这些cpp / h文件,并在没有新行的每个文件的末尾添加新行?
我一直在尝试使用sed:
find . \( -name "*.cpp" -o -name "*.h" -o -name "*.hpp" \) -print | xargs sed -i -e "$G"
但是我还没有得到它的工作。
在dos2unix的情况下 – 这将是理想的方式,请尝试:
find . \( -name "*.cpp" -o -name "*.h" -o -name "*.hpp" \) -print0 | xargs -0 -iFILE sh -c 'echo >> FILE'
要么
find . -type f \( -name "*.cpp" -o -name "*.h" -o -name "*.hpp" \) -exec sh -c 'echo >> {}' \;
请注意,redirect始终是一个问题 – 如果不启动新shell,则不会按需要进行replace。
既然你的问题是关于'sed'的,你也可以这样做:
find . \( -name "*.cpp" -o -name "*.h" -o -name "*.hpp" \) -print0 | xargs -0 sed -i -e '$a\ \'
(这是一个字面的新行字符 – 不是\ n或其他任何东西 – 可能是最好的复制和粘贴 – 因为它可能很难input:)。
find . \( -name "*.cpp" -o -name "*.h" -o -name "*.hpp" \) -print | xargs dos2unix {}