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

相关推荐
便利店10247 分钟前
系统活动一抓留存!深入 Linux C/C++ 调试工具之 sysdig
linux·运维·服务器·sysdig
qetfw1 小时前
Bash 变量:export、位置参数与默认值展开验证
linux·开发语言·chrome·bash
智能运维指南1 小时前
企业 IT 运维自动化平台怎么选?从场景匹配到 POC 验证的完整评估框架
运维·自动化·自动化运维·嘉为蓝鲸
其实防守也摸鱼1 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
toooooop82 小时前
CentOS 7 内核 3.10.0-1160.119.1 升级指南
linux·运维·centos
云飞云共享云桌面2 小时前
广东东莞制造工厂10人共享一台三维设计服务器
运维·服务器·3d·自动化·制造
码少女2 小时前
Linux——UDP协议和TCP协议
linux·网络·udp·tcp
开心就好20252 小时前
uni-app 本地打包 iOS,在 Windows 上使用 KXBuild 产出 ipa 并上架的完整流程
后端·ios
GeW2 小时前
新质生产力发展路线图Linux、数据库、AI 一个都不能少
linux