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

相关推荐
weixin_307779132 小时前
Clickhouse统计指定表中各字段的空值、空字符串或零值比例
运维·数据仓库·clickhouse
bubiyoushang8882 小时前
Windows11 WSL2 Ubuntu编译安装perf工具
linux·运维·ubuntu
行云流水剑3 小时前
【学习记录】使用 Kali Linux 与 Hashcat 进行 WiFi 安全分析:合法的安全测试指南
linux·学习·安全
xuanwojiuxin4 小时前
linux panic-propagation
linux·运维·服务器
achene_ql6 小时前
select、poll、epoll 与 Reactor 模式
linux·服务器·网络·c++
藥瓿亭6 小时前
K8S认证|CKS题库+答案| 9. 网络策略 NetworkPolicy
linux·运维·docker·云原生·容器·kubernetes·cks
千千寰宇6 小时前
[数据传输/网络传输/序列化/计算机组成原理] 字节序/大小端
linux·计算机组成原理/硬件/半导体
LFloyue6 小时前
Linux离线(zip方式)安装docker
linux·docker
liuzhenghua666 小时前
Python任务调度模型
java·运维·python
黎相思6 小时前
应用层自定义协议与序列化
运维·服务器·网络