之前看到有的xcode工程中所有的.swift 文本中,最上面的注释信息全部没有了,因为工程比较庞大,不太可能手动删除,这里大致写了个脚本,递归删除信息。重复执行脚本不会产生影响。
bash
#!/bin/bash
result=$(find ./ -name "*.swift")
for file in $result
do
echo handing ${file}...
len=$(wc -l < $file)
# less than 7, cannot handle
if [ $len -lt 7 ]; then
continue
fi
# get first 7 lines
isValid=1
for ((i = 0; i < 7; i++))
do
# echo $(sed -n "`expr $i + 1`,`expr $i + 1`p" $file)
line=$(sed -n "`expr $i + 1`,`expr $i + 1`p" $file)
echo $line
[ "${line:0:2}" = "//" ] && continue
isValid=0
break
done
if [ "$isValid" -eq 0 ]; then
continue
fi
# delete first 7 lines
sed -i '1,7d' $file
done
问题记录:
1、刚开始是取出前7行,然后利用for循环遍历,但是sh中遍历是以 空格,制表符和回车为分界,用了好几种方式还是没有成功,最后搞成c格式的循环,利用sed 取出指定行
2、[ ]命令(即test)中的内容和左右中括号之间必须保留一个空格,否则报错