sed 批量修改Makefile文件

Makefile文件太多

[[email protected] DarwinStreamingSrvr6.0.3-Source]# find -name Makefile.POSIX 
./APIModules/QTSSDemoAuthorizationModule.bproj/Makefile.POSIX
./APIModules/QTSSDemoRedirectModule.bproj/Makefile.POSIX
./APIModules/QTSSHomeDirectoryModule/Makefile.POSIX
./APIModules/QTSSRawFileModule.bproj/Makefile.POSIX
./APIModules/QTSSRefMovieModule/Makefile.POSIX
./APIModules/QTSSSpamDefenseModule.bproj/Makefile.POSIX
./CommonUtilitiesLib/Makefile.POSIX
./HTTPUtilitiesLib/Makefile.POSIX
./Makefile.POSIX
./MP3Broadcaster/Makefile.POSIX
./PlaylistBroadcaster.tproj/Makefile.POSIX
./QTFileLib/Makefile.POSIX
./QTFileTools/QTBroadcaster.tproj/Makefile.POSIX
./QTFileTools/QTFileInfo.tproj/Makefile.POSIX
./QTFileTools/QTFileTest.tproj/Makefile.POSIX
./QTFileTools/QTRTPFileTest.tproj/Makefile.POSIX
./QTFileTools/QTRTPGen.tproj/Makefile.POSIX
./QTFileTools/QTSampleLister.tproj/Makefile.POSIX
./QTFileTools/QTSDPGen.tproj/Makefile.POSIX
./QTFileTools/QTTrackInfo.tproj/Makefile.POSIX
./qtpasswd.tproj/Makefile.POSIX
./StreamingLoadTool/Makefile.POSIX
./StreamingProxy.tproj/Makefile.POSIX
[[email protected] DarwinStreamingSrvr6.0.3-Source]#

经过查看之后,大多数文件内容格式如下:

.cpp.o:
    $(C++) -c -o $*.o $(DEFINES) $(C++FLAGS) $*.cpp

.c.o:
    $(CC) -c -o $*.o $(DEFINES) $(CCFLAGS) $*.c


执行批量更换

[[email protected] DarwinStreamingSrvr6.0.3-Source]# find -name Makefile.POSIX | xargs sed -i ‘/.cpp.o/a\\t$(C++) -E -o $*.i $(DEFINES) $(C++FLAGS) $*.cpp‘ 
[[email protected] DarwinStreamingSrvr6.0.3-Source]# find -name Makefile.POSIX | xargs sed -i ‘/.c.o/a\\t$(CC) -E -o $*.i $(DEFINES) $(CCFLAGS) $*.c‘


批量更换之后:

.cpp.o:
    $(C++) -E -o $*.i $(DEFINES) $(C++FLAGS) $*.cpp
    $(C++) -c -o $*.o $(DEFINES) $(C++FLAGS) $*.cpp

.c.o:
    $(CC) -E -o $*.i $(DEFINES) $(CCFLAGS) $*.c
    $(CC) -c -o $*.o $(DEFINES) $(CCFLAGS) $*.c




时间: 2024-11-08 07:56:07

sed 批量修改Makefile文件的相关文章

java批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码

原文:java批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码 源代码下载地址:http://www.zuidaima.com/share/1550463660264448.htm 今天有个需求,想把某个文件夹下所有后缀名为jsp的更改为ftl,本来想用bat实现对bat的高级语法也不太了解,后来发现还需要递归遍历所有的子文件夹,所以用java实现了一个功能一样的代码,有需要的牛人可以下载修改为自己想要的. 这样可以兼容windows和linux. package com.zuidaima

[Window] 批量修改相同文件类型的后缀

难题:有时因为某种原因,修改一堆文件的类型,重复操作次数多,浪费时间也跟着多,收获也会相当少. 提问:对于软件而言,可量化的,有规律的操作,可以使用程序来进行替代. 特性:在微软操作系统上,不同后缀的文件,使用不同软件打开. 解决方案一: 1)建立一个新的文件夹,将相同的文件类型且要待修改的文件,导入到新建的文件夹下. 2)新建一个记事本 ren *.jpg *.png       // ren    修改文件名 //  .jpg   待修改的文件类型 //  *.png  修改后的文件类型 3

批量修改java文件的包名

需求:我复制进批量的java文件,但是包名需要用现在创建的包名 导入进来时,由于包名不一致会报错 解决办法,点击包名鼠标右键>Refactor>Rename 结果如下ok:

使用终端shell命令批量修改一个文件下的所有文件的读写权限

之前对openfire安装的目录就遇到过这个问题,今天再次遇到,需要修改一个文件夹下面的所有子文件夹以及文件的三个权限:本用户读写,管理员读写,所有人读写,三个都要需改为wr 过程如下:例如我要修改/Applications/XAMPP/xamppfiles/htdocs/文件夹中的所有文件权限,那么打开terminal: cd /Applications/XAMPP/xamppfiles ##cd到htdocs的父文件夹 sudo chmod -R 777 htdocs ##需要管理员权限来递

sed 批量修改文件中遇到的单引号和双引号的坑

1.功能需求: 代码上线时候可能会遇到需要修改程序的一些文件的配置信息,如果通过脚本实现,我想到了sed将这些需要修改的配置位置的行号用grep -n + awk 过滤到一个数组里面,然后通过for+case/esac(即c语言的switch case)遍历sed 替换即可 2. 代码截图 3.遇到两个坑 1.sed -ir "行号s/匹配内容/替换内容/g"中的每一部分中如果有引用变量记得使用单引号,否则可能无法解析变量 2 . 其实用双引号也可以放到最外层.不过通常不这么做 3  

批量修改文件名 文件后缀

文件夹中新建文本,输入代码,更改文本后缀为.bat 要更改的文件与文本放在同一文件夹 双击运行 1.批量删除文件后缀名 ren *.png* *.png 去掉“.下载” 运行后 2.批量删除文件重复后缀名 ren *.png *. 运行后 3.批量删除文件名前n个字符 @echo offsetlocal enabledelayedexpansion ::批量去掉文件名前N个字符,如果有文件夹会搜索文件夹下的每个文件进行修改set /p format=What suffix filename to

Linux利用sed批量修改文件名

初始文件名 # ls -lh total 5.5G -rw-r--r-- 1 root root 193K Sep 28 09:38 20180908.txt drwxr-xr-x 2 root root 4.0K Mar 7 16:37 batch -rw-r--r-- 1 root root 160M Mar 13 16:35 batch_dispatcher.log.1 -rw-r--r-- 1 root root 17M Jan 8 12:00 batch_gen_scheduler.l

批量修改rrd文件配置

#!/bin/bash ### Author:huangjinfa ### Email:[email protected] for i in $(/bin/ls $1) do /usr/bin/rrdtool dump ./$1/$i > ./$1/$i.xml /bin/sed -i '4s/300/60/g' ./$1/$i.xml /bin/sed -i '10,23s/600/120/g'  ./$1/$i.xml /bin/rm ./$1/$i /usr/bin/rrdtool res

python批量修改txt文件,csv文件 编码格式

from os import listdir from chardet import detect fns = (fn for fn in listdir() if fn.endswith('.csv')) for fn in fns: with open(fn, 'rb+') as fp: content = fp.read() encoding = detect(content)['encoding'] content = content.decode(encoding).encode('u