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

相关推荐
Agent手记14 小时前
传统工厂的工单自动排程如何用AI解决?从大模型推理到端到端自动化的闭环实战
运维·人工智能·ai·自动化
2501_9160074714 小时前
iOS应用性能优化全面指南:从内存管理到工具使用
android·ios·性能优化·小程序·uni-app·iphone·webview
库奇噜啦呼14 小时前
【iOS】源码学习-类的加载
学习·ios·cocoa
code_li14 小时前
Netlify全栈开发:零运维部署实战
运维·服务器·部署
ayqy贾杰14 小时前
我同事,40了,他vibe coding了个App
前端·ios·客户端
学困昇14 小时前
Linux 信号机制详解:从 Ctrl+C 到 SIGCHLD,一文理解进程信号
linux·c语言·开发语言·人工智能·面试
艾莉丝努力练剑14 小时前
【Linux:文件】库的制作与原理进阶
linux·运维·服务器·网络·数据库·c++·人工智能
Strugglingler14 小时前
Linux Device Drivers-第八章 内存分配
linux·kernel·读书笔记·内存分配
z2023050815 小时前
RDMA之RDMA 的发展原因和软件架构基础(10)
linux·服务器·网络·人工智能·ai
炘爚15 小时前
Linux——线程
linux