我正在使用cygwin版本的扩展与bash shell。有没有办法告诉unix扩展命令不要改变行尾?
当调用expand
更换所有\t
与(空格)
expand
也改变所有换行符结局从\n
到\r\n
。
我使用以下bash脚本:
#!/bin/bash
BRANCH=$1
TMPFILE=/tmp/temporaryExpander
EXTENSIONS=(
cpp
cxx
h
java
txt
cs
csproj
vcproj
sln
csdproj
)
function TabsToSpacesForFile
{
relativeFilePath=$1
absoluteFilePath=`pwd`/$relativeFilePath
expand --tabs=4 $absoluteFilePath > $TMPFILE
cat $TMPFILE > $absoluteFilePath
}
for project in `ls $BRANCH`
do
for extension in "${EXTENSIONS[@]}"
do
find $BRANCH/$project -name "*\.${extension}" | while read file; do TabsToSpacesForFile "$file"; done
done
done
我知道这并不能直接解决您的问题,但您可以使用此命令将空格替换为tab:'cat file | tr“\ t”“”''。 – squiguy
顺便说一句,要从相对路径转换为绝对路径,我会推荐使用'readlink -f' ... – anishsane