脚本一:格式化指定目录下的源文件(*.h, *.cpp...)

#!/bin/sh
# 格式化某目录下所有*.h, *.c, *.cpp, *.hh文件, 并将文件换行符转换成Linux下的格式
if [ $# -lt 1 ]; then
echo "Usage: $0 <dir>"
exit 1
else
dir=$1
fi
# format a source file(*.c, *.h, *.cpp, *.hh)
formatSrcfile()
{
dos2unix $1
indent -npro -nip -lp -npsl -npcs -i4 -ts4 -sob -l140 -ci4 -ss -nsaf -nsai -nsaw -bl -bli0 $1
rm -f "$1"~
}
# save file path to file
find $dir -name '*.h' -o -name '*.c' -o -name '*.cpp' -o -name '*.hh' > tmp
# format every file in tmp
while read file
do
formatSrcfile $file
done < tmp
# remove tmp file
rm -f tmp

脚本二:格式化指定的文件

#!/bin/sh
# 格式化指定的文件, 并将文件换行符转换成Linux下的格式
if [ $# -lt 1 ]; then
echo "Usage: $0 file1 file2 file*.cpp ..."
exit 1
fi
# format a source file(*.c, *.h, *.cpp, *.hh)
formatSrcfile()
{
dos2unix $1
indent -npro -nip -lp -npsl -npcs -i4 -ts4 -sob -l140 -ci4 -ss -nsaf -nsai -nsaw -bl -bli0 $1
rm -f "$1"~
}
for i in $*
do
formatSrcfile $i
done

因为indent的参数很多,我这里用的格式不一定是所有人都喜欢的,所以如果不符合您的要求,请大家自己修改。

我这两个脚本都有一个bug,一直没找到解决办法,若有人解决了,还望告知下。bug如下:

就是上图左边的代码,会被格式成右边的样子,但是事实上对于左边这样的格式,我希望他能保持不变,不知如何修改indent参数呢?

另外,如果一个宏单独一行,且没有分号作结尾,他会将下一行的内容给捞上来的,哈哈!

利用indent格式化源文件的脚本相关推荐

  1. linux indent格式化代码

    linux kernel有一个脚本Lindent,可以帮助你将自己的代码做一个好的代码风格格式化. 如:/usr/src/linux-headers-2.6.22-14/scripts/Lindent ...

  2. linux indent添加,linux indent格式化代码

    linux kernel有一个脚本Lindent,可以帮助你将自己的代码做一个好的代码风格格式化. 如:/usr/src/linux-headers-2.6.22-14/scripts/Lindent ...

  3. TF之VGG系列:利用预先编制好的脚本data_convert .py文件将图片格式转换为tfrecord 格式

    TF之VGG系列:利用预先编制好的脚本data_convert .py文件将图片格式转换为tfrecord 格式 目录 转换代码 转换后的结果 转换代码 python data_convert2tfr ...

  4. 输入法注入源码_将注入进行到底:利用Mono注入C#游戏脚本

    本文作者01dTan9,首发于三叶草小组博客:http://blog.sycsec.com/   致力于引领每一位对windows安全感兴趣的萌新,希望让萌新能够对Windows有初步的了解.笔者的文 ...

  5. mysql 存储过程 脚本_mysql利用存储过程插入大量数据脚本

    1.检查是否开启二进制日志 #查看是否开启二进制日志,ON表示开启,OFF表示没有开启 show variables like'log_bin_trust_function_creators'; #若 ...

  6. php怎么获取权限操作 shell,利用php利用root权限执行shell脚本必须进行以下几个步骤...

    这几天弄的东西涉及到php利用shell脚本与Linux的交互,我们知道利用php运行脚本来访问Linux是以Apach的身份来执行的,因此它自己能够所做的事情很少的,因为没有足够的权限,这里就涉及到 ...

  7. python黑科技脚本_利用Python实现FGO自动战斗脚本,再也不用爆肝啦~

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 利用Python实现FGO自动战斗脚本,再也不用爆 ...

  8. Windows下利用**SDFormatter**格式化SD卡

    树莓派3-SD卡格式化-Windows下利用SDFormatter格式化SD卡 格式化前准备 下载SDFormatter软件 下载 一张Miscro SD卡 读卡器 电脑 格式化步骤 下载软件并安装 ...

  9. 利用Python实现系统监控脚本

    利用Python实现系统监控脚本 简介 该 Python 脚本,用于监控计算机或网络的性能和状态.该脚本可用于跟踪各种指标,例如 CPU 使用率.内存使用率.磁盘空间.网络流量和系统正常运行时间.该脚 ...

最新文章

  1. 凭啥Java运行环境称虚拟机 Python只能称解释器
  2. pyquery获取不到网页完整源代码_PyQuery 详解
  3. Android之解决ScrollView嵌套RecycleView导致滑动冲突或者显示不全的问题
  4. Node.js 根本没有这样搞性能优化的?
  5. 5种你未必知道的JavaScript和CSS交互的方法
  6. VUE自学日志02-应用与组件实例
  7. MTK6589反向修改拼包法操作流程
  8. 域名排名(前100万)
  9. java获取手机型号
  10. 基于Androidstudio餐厅点餐选座系统
  11. linux开发板添加qt库文件_关于QT程序下载到开发板的一些步骤总结
  12. 小学计算机课题研究方案,小学语文课题研究方案
  13. phpstudy 报错Error while setting value ‘NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO‘ to ‘sql_mode‘
  14. 一个项目经理的经验总结_小七_新浪博客
  15. kafka中文文档new comsumer配置参数
  16. bash内置文档(ubuntu20.10)
  17. Flutter开发 - 对于富文本展示的方法封装
  18. 阿里DRDS基本原理
  19. Praat脚本-018 | Praat批量调整音量
  20. ffmpeg加字幕和自定义字体

热门文章

  1. 用SQL实现统计报表中的“小计”和“合计”
  2. 隐藏自己电脑的IP地址
  3. 天凉了,大家多穿衣服
  4. ai前沿公司_美术是AI的下一个前沿吗?
  5. 282. 给表达式添加运算符
  6. 数据挖掘—K-Means算法(Java实现)
  7. 文章中嵌入代码块_如何在您的文章中嵌入多项选择测验问题
  8. 开源短地址_如何在短短5分钟内完成您的第一个开源贡献
  9. node.js事件驱动_了解Node.js事件驱动架构
  10. yolo人脸检测数据集_自定义数据集上的Yolo-V5对象检测