Linux脚本-将当前文件夹下所有包含main函数的.c文件提取出来
实现一个Linux脚本,该脚本使用 for 循环遍历当前目录下的所有 .c 文件。
对于每个 .c 文件,使用 grep 命令来查找是否包含字符串 “main”。
如果该 .c 文件包含 “main”,则输出到/home/majn/llvm_project/extract_main目录下。
#!/bin/bash# 目标目录
TARGET_DIR="/home/majn/llvm_project/extract_main"# 创建目标目录,如果不存在的话
mkdir -p "$TARGET_DIR"# 遍历当前目录下的所有 .c 文件
for file in *.c; do# 使用 grep 命令查找是否包含字符串 "main"if grep -q "main" "$file"; then# 如果找到,将该 .c 文件复制到目标目录下cp "$file" "$TARGET_DIR/"echo "Copied $file to $TARGET_DIR"elseecho "$file does not contain 'main'"fi
done
这里做了以下几件事:
- 使用
mkdir -p创建目标目录(如果不存在)。 - 使用
for循环遍历当前目录下的所有.c文件。 - 使用
grep -q查找每个文件中是否包含字符串"main"。 - 如果包含,使用
cp命令将文件复制到目标目录。
保存这个脚本,给它可执行权限,然后运行它:
chmod +x your_script.sh
./your_script.sh
注意:请确保你有写入 /home/majn/llvm_project/extract_main 目录的权限,并且在运行脚本之前要小心,以确保不会覆盖重要文件。如果需要,先在一个测试目录中运行这个脚本。
上述脚本执行报错!!!
./main.sh
-bash: ./main.sh: /bin/bash^M: bad interpreter: No such file or directory
这个错误通常是因为脚本文件中含有 Windows 风格的换行符(\r\n),而 Linux 期望的是 UNIX 风格的换行符(\n)。当你在 Windows 系统中创建或编辑文本文件并将其转移到 Linux 系统时,这种情况可能会发生。
你可以使用 dos2unix 工具来转换文件的换行符。首先,你需要安装 dos2unix:
sudo apt update
sudo apt install dos2unix # 在基于 Debian 的系统中
或者
yum install dos2unix # 在基于 RedHat 的系统中
然后,你可以运行下面的命令来转换脚本文件:
dos2unix main.sh
这会把 main.sh 中的所有 Windows 风格的换行符转换为 UNIX 风格的换行符。
然后,你应该能够正常运行脚本:
chmod +x main.sh
./main.sh
如果你没有 dos2unix 工具,也可以使用 sed 来进行转换:
sed -i 's/\r$//' main.sh
这行 sed 命令会查找并移除文件中所有行尾的 \r 字符。之后,你应该能够正常执行该脚本。
相关文章:
Linux脚本-将当前文件夹下所有包含main函数的.c文件提取出来
实现一个Linux脚本,该脚本使用 for 循环遍历当前目录下的所有 .c 文件。 对于每个 .c 文件,使用 grep 命令来查找是否包含字符串 “main”。 如果该 .c 文件包含 “main”,则输出到/home/majn/llvm_project/extract_main目录下。 #!/bin/bas…...
Spring依赖注入(DI)
目录 构造器注入 set注入 拓展注入 bean的作用域 Singleton Prototype Dependency Injection 依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 . 注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 . 构造器注入 具体实现:SpringIOC创建对象的…...
论文笔记: 深度学习速度模型构建的层次迁移学习方法 (未完)
摘要: 分享对论文的理解, 原文见 Jrome Simon, Gabriel Fabien-Ouellet, Erwan Gloaguen, and Ishan Khurjekar, Hierarchical transfer learning for deep learning velocity model building, Geophysics, 2003, R79–R93. 这次的层次迁移应该指从 1D 到 2D 再到 3D. 摘要 深…...
苹果为 Vision Pro 头显申请游戏手柄专利
苹果Vision Pro 推出后,美国专利局公布了两项苹果公司申请的游戏手柄专利,其中一项的专利图如下图所示。据 PatentlyApple 报道,虽然申请专利并不能保证苹果公司会推出游戏手柄,但是苹果公司同时也为游戏手柄申请了商标࿰…...
【数据结构】多叉树转换为二叉树-c++代码实现-POJ 3437 Tree Grafting
文章目录 写这个题目的原因寻找提交网址题目解决思路AC代码成功AC 写这个题目的原因 1、今天在看王道考研数据结构的课(虽然我要保研,但是因为这些看保研面试的时候会问,所以看一下嘞orz),看到了这个多叉树转换为二叉…...
ASP.NET Core 中基于 Controller 的 Web API
基于 Controller 的 Web API ASP.NET Wep API 的请求架构 客户端发送Http请求,Contoller响应请求,并从数据库读取数据,序列化数据,然后通过 Http Response返回序列化的数据。 ControllerBase 类 Web API 的所有controllers 一般…...
iOS系统修复软件 Fix My iPhone for Mac
Fix My iPhone for Mac是一款iOS系统恢复工具。修复您的iPhone卡在Apple徽标,黑屏,冻结屏幕,iTunes更新/还原错误和超过20个iOS 12升级失败。这个macOS桌面应用程序提供快速,即时的解决方案来修复您的iOS系统问题,而不…...
Git企业开发控制理论和实操-从入门到深入(七)|企业级开发模型
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…...
15. 卡牌游戏
目录 题目 思路 C整体代码(含详细注释) 题目 Description 小张在玩一种卡牌游戏,牌组由张牌组成,其中张上写有数字各一张,其余张上全部是数字。 现在牌组经过随机打乱后,小张拿走其中张牌作为手牌&#…...
vue使用打印组件print-js
项目场景: 由于甲方要求,项目需要打印二维码标签,故开发此功能 开发流程 安装包:npm install print-js --saveprint-js的使用 <template><div id"print" ref"print" ><p>打印内容<p&…...
20230830比赛总结
分数 预估分数: 100 100 [ 0 , 20 ] 100 [ 300 , 320 ] 100100[0,20]100[300,320] 100100[0,20]100[300,320] 实际分数: 100 100 10 100 310 10010010100310 10010010100310 反思 B 只是粗略观察表就急于写决策单调性优化,写完后…...
DNS指向别名还是IP
现在有一台服务器dbprod126,ip是172.22.100.4 现在有一个需求,需要在dns中对dbprod126建一个别名wondadb3r的记录,也就是ping wondadb3r的时候显示的是dbprod126的ip,目前有两种方法,主要使用方法1指向别名…...
【考研数学】概率论与数理统计 —— 第二章 | 一维随机变量及其分布(1,基本概念与随机变量常见类型)
文章目录 引言一、一维随机变量及其分布1.1 随机变量1.2 分布函数 二、随机变量常见类型及分布2.1 离散型随机变量2.2 连续型随机变量及概率密度函数 写在最后 引言 暑假接近尾声了,争取赶一点概率论部分的进度。 一、一维随机变量及其分布 1.1 随机变量 设随机试…...
CSS判断手机暗黑模式
手机有个功能到了晚上会自动变成深色也就是暗黑模式.这种情况下网页会自动变颜色.如果想自由控制暗黑模式下的html样式的话,可以用如下方式: media (prefers-color-scheme: dark) {/*html, body {*//*filter: invert(1) hue-rotate(180deg);*//*}*/.maill{margin-left: 0;marg…...
【java中的Set集合】HashSet、LinkedHashSet、TreeSet(最通俗易懂版!!)
目录 一、HashSet集合 1.HashSet集合的特点 2.HashSet常用方法 二、LinkedHashSet集合 LinkedHashSet集合的特点 三、TreeSet集合 1.TreeSet集合的特点 2.TreeSet的基本使用 四、HashSet、LinkedHashSet、TreeSet的使用场景 五、list和set集合的区别 一、HashSet集合 …...
python中的文件操作
我们平常对文件的基本操作,大概可以分为三个步骤(简称文件操作三步走): ① 打开文件 ② 读写文件 ③ 关闭文件 【注意事项】 注意:可以只打开和关闭文件,不进行任何读写 文件打开 open函数ÿ…...
spark支持深度学习批量推理
背景 在数据量较大的业务场景中,spark在数据处理、传统机器学习训练、 深度学习相关业务,能取得较明显的效率提升。 本篇围绕spark大数据背景下的推理,介绍一些优雅的使用方式。 spark适用场景 大数据量自定义方法处理、类sql处理传统机器…...
代码随想录打卡—day52—【子序列问题】— 8.31 最大子序列
共性 做完下面三题,发现三个的dp数组中i都是以 i 为结束的字串。 1 300. 最长递增子序列 300. 最长递增子序列 AC: class Solution { public:int dp[10010]; // 表示以i结束的子序列最大的长度/*if(nums[j] > nums[i])dp[j] max(dp[j],dp[i] …...
gcc4.8.5升级到gcc4.9.2
第1步:获取repo [rootlocalhost SPECS]# wget --no-check-certificate https://copr.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo -O /etc/yum.repos.d/devtoolset-3.repo --2021-12-07 20:53:26-- https://copr.fedo…...
Golang 中的 archive/zip 包详解(三):常用函数
Golang 中的 archive/zip 包用于处理 ZIP 格式的压缩文件,提供了一系列用于创建、读取和解压缩 ZIP 格式文件的函数和类型,使用起来非常方便,本文讲解下常用函数。 zip.OpenReader 定义如下: func OpenReader(name string) (*R…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
