linux之shell脚本删除iOS 文件头部信息

之前看到有的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)中的内容和左右中括号之间必须保留一个空格,否则报错

相关推荐
哎呦喂我去去去几秒前
C#实现屏幕墙:同时监控多个电脑桌面(支持Windows、信创Linux、银河麒麟、统信UOS)
linux·windows·c#
为自己_带盐29 分钟前
安敢越雷池一步?浅尝雷池WAF社区版
运维·web安全
NiceCloud喜云42 分钟前
海外云服务器怎么选?适用场景、价格和避坑经验总结
运维·服务器
easy_coder1 小时前
Linux LVM 知识文档
linux·运维
AI云海1 小时前
iOS 多 Target 打包、UAT/生产测试与上架 App Store 全流程指南
ios
小小的木头人2 小时前
Ubuntu 使用 udev + systemd + UUID 实现 USB 硬盘自动挂载
linux·运维·ubuntu
布鲁飞丝3 小时前
彩笔运维勇闯机器学习--cpu与qps的线性关系
运维·人工智能·机器学习
阿里超级工程师3 小时前
最新快速申请ios打包证书和profile文件步骤
ios·打包证书
kaoa0003 小时前
Linux入门攻坚——84、网络虚拟化技术-1
linux·运维·服务器
RisunJan3 小时前
Linux命令-shutdown(安全关闭或重启系统)
linux·服务器·安全