linux shell之paste合并文件和找到匹配的文件里面替换内容(find和-exec或xargs组合)

1 问题

1)合并2个文件,这里用paste命令

2)找到匹配的文件里面替换内容,这里用find 和 -exec或xargs命令组合

 

 

 

 

2 实现

1)合并2个文件,这里用paste命令,我们在paste后面加参数-d 然后加" ",表示文件之间内容隔着空格,“,”表示文件之间内容隔着内容

cat 1.txt 
1
2
3
4
5
6
cat 2.txt
chenyu
chengongyu
hello
paste 1.txt 2.txt -d ','
1,chenyu
2,chengongyu
3,hello
4,
5,
6,
paste 1.txt 2.txt -d ' '
1 chenyu
2 chengongyu
3 hello
4 
5 
6 

2)把当前目录下的cpp文件里的chenyu替换成hello(find和-exec组合)

cat 1.cpp 
chenyu
chengongyu
chenzixuan
chenyu
cat 2.cpp 
chenyu
chenzixuan
chengongyu
chenyu
cat 3.cpp 
chenyu
chencaifeng
chengongyu
cat 4.cpp 
chenyu
chengong
chenyu
chencaifengfind . -name "*.cpp" -exec sed -i 's/chenyu/hello/' {} \;cat 1.cpp 2.cpp 3.cpp 4.cpp 
hello
chengongyu
chenzixuan
hello
hello
chenzixuan
chengongyu
hello
hello
chencaifeng
chengongyu
hello
chengong
hello
chencaifeng

3)把当前目录下的cpp文件里的hello替换成chenyu(find和xargs组合)

find . -name "*.cpp" | xargs sed -i 's/hello/chenyu/'cat 1.cpp 2.cpp 3.cpp 4.cpp 
chenyu
chengongyu
chenzixuan
chenyu
chenyu
chenzixuan
chengongyu
chenyu
chenyu
chencaifeng
chengongyu
chenyu
chengong
chenyu
chencaifeng

 

 

 

3 要注意的地方

1)使用sed命令的时候要记得参数加-i,然后后面一般是's/pattern/replace_str/'  而不是's/pattern/replace_str'  忘记最后一个左斜杠会报错 

2)我们使用-exec的时候一般模式是下面的

-exec commond {} \;   这个{}和\;不能挨着一起,同时\;不能分开,比如\ ;也会有问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288585.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows Live Writer 的昨日荣光

今天这一篇文章,想写一写Windows Live Writer这款博客编辑器(最早的一个版本是2007年发布的)。毫不夸张地说,这是为数不多的几款所见即所得的编辑器之一,当然,它的运行速度慢也是一个众所周知的问题。作为一…

qpython执行手机脚本精灵使用教程_Android上执行python脚本-QPython

看书,发现android可以跑python。尝试了一下。首先需要在手机上安装python环境,通过安装apk实现,这个apk叫QPython,还有同类的比如SL4A。QPython的官网:https://www.qpython.com/可以在官网上下载QPython的安装包&#…

猎豹MFC--CMenu菜单 设置主菜单 给主对话框设置菜单 设置快捷菜单

设置主菜单(不是快捷菜单):给主对话框设置菜单:效果如下:修改菜单的ID使之便于记忆:给菜单添加消息处理:添加处理代码:设置快捷菜单:打开对话框,属性添加消息…

SQL主键简单表述

主键(PRIMARY KEY 约束):PRIMARY KEY 约束唯一标识数据库表中的每条记录。 主键就是唯一的,其是索引的一种,并且是唯一性索引的一种。 其实主键就像我们的身份证一样,每一个主键的id就表示着一个特定的一…

oracle 删除空间不足,oracle表空间扩容、创建、删除(解决表空间不足问题)

前言整理一下之前使用oracle数据库遇到的表空间不足的问题,顺便水个博客。oracle表空间操作语句1.改变已存在的数据文件的大小ALTER TABLESPACE app_data ADD DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF‘ SIZE 20480M;2.允许已存在的数据文件…

重复数据删除:块级技术VS.字节级技术

重复数据删除技术能够识别重复的数据,消除冗余,减少需转移或存储的数据的总体容量。在本文中,我将分别对这两种技术加以评论。与块级技术相比,字节级删除技术对数据的检查更加细微,精度更高,但同时需要更加…

Mac升级到Yosemite后默认的php版本不支持imagetfftext函数问题解决

Mac升级到yosemite后,php也自动升级,运行项目的时候发现后台验证码显示不出来。调试一下发现imagetfftext这个函数不存在,应该gd没有安装完全,因为Mac上的php实现系统自带的,只能通过重新安装php来解决【不能通过安装扩…

linux shell之字符串的更具字符分割和删除字符和文本内容的删除以及内容是否匹配成功

1 字符串的更具字符分割 1) xargs分割 echo "chenyu*hello*word" | xargs -d "*" chenyu hello word 2) awk分割 echo "chenyu*hello*word" | awk -F "*" {print $1} chenyu 2 字符串的删除字符 1&#xf…

将一个正方形分成4个大小一样的小正方形,再将其中一个小正方形分成4个小正方形,如此类推,分割n次是几个正方形?

问题: 将一个正方形分成4个大小一样的小正方形,再将其中一个小正方形分成4个小正方形,如此类推,分割n次是几个正方形? 解答: 一次分割都是将一个分成4个,增加了3(1*3)个…

领域事件和集成事件没那么高大上

前言随着系统架构的演变,有很多名词也随之涌现,如:微服务、灰度发布、资源隔离、容器、领域/集成事件等,听着的确高大上,让很多小伙伴有一种无法征服的感觉;其实很多东西可能之前就已经用过了,只…

python截图拼接_Python实现屏幕截图有两种方式 - 小众知识

使用windows API使用PIL中的ImageGrab模块下面对两者的特点和用法进行详细解释。一、Python调用windows API实现屏幕截图好处是灵活速度快缺点是:写法繁琐不跨平台import timeimport win32gui, win32ui, win32con, win32apidef window_capture(filename):hwnd 0 #…

sql drop 简单操作(Mysql)

通过使用 DROP 语句&#xff0c;可以轻松地删除索引、表和数据库。 例如&#xff0c;删除一个表&#xff0c;表名为 table1 的表&#xff1a; drop table <表名>; drop table table1 ; drop删除数据库 test1: drop database <数据库名>; drop database test1…

20142335郝昊第三周学习总结

20145335郝昊 《Java程序设计》第3周学习总结 教材学习内容总结 第四章 类与对象 定义&#xff1a; 对象&#xff08;Object&#xff09;&#xff1a;存在的具体实体&#xff0c;具有明确的状态和行为。 类&#xff08;Class&#xff09;:具有相同属性和行为的一组对象的集合&…

Python面向对象编程基础

#codingutf-8class hello:def __init__(self,NAME):self.nameNAMEdef sayhello(self):print("Hello, {0}".format(self.name)) #拼接字符串&#xff0c;也可以用print("Hello "self.name)#类的继承 class hi(hello): #父类用括号括起来def sayhi(self):pr…

书生云王东临:真正的超融合产品要像“机器猫” 开箱即用

“经过6年的发展&#xff0c;我们已经为技术找到了非常好的落地产品&#xff0c;可以突出我们的优势&#xff0c;现在到了我们大展宏图的时候了。”20年前书生集团从电子公文业务起家&#xff0c;后来经营过电子书网站&#xff0c; 6年前开始进入云存储领域&#xff0c;在存储技…

NetBeans安装提示neatbeans cannot find java 1.8 or higher

1 问题 安装NetBeans的时候&#xff0c;点击bin目录下的netbeans64.exe,然后提示错误 neatbeans cannot find java 1.8 or higher 然后我在终端输入java -version是1.8 C:\Users\User>java -version java version "1.8.0_65" Java(TM) SE Runtime Environment …

hierarchyviewer

为什么80%的码农都做不了架构师&#xff1f;>>> 学习monkeyrunner&#xff0c;无奈怎么都无法启动activity&#xff0c;人家告诉我.hierarchyviewer这个工具可以&#xff0c;今天我就开始学习这个了&#xff0c;但愿有所帮助啊。http://www.xuebuyuan.com/2104811.…

ALTER 简单操作(mysql)

ALTER 语句 ALTER 语句用于在已有的表中添加、修改或删除。 删除列: ALTER TABLE 表名字 DROP 列名称 例如&#xff1a;删除test111表中的age列 ALTER TABLE test1111 DROP age 添加列&#xff1a;添加到test1111表列&#xff0c;名为age&#xff0c;约束为not null 注释…

什么时候应该使用 LazyT ?

咨询区 danyolgiax最近我在看关于 Lazy<T> 的资料&#xff0c;链接&#xff1a;https://sankarsan.wordpress.com/2009/10/04/laziness-in-c-4-0-lazyt &#xff0c; 看是看完了&#xff0c;但我始终想不明白它的应用场景有哪些&#xff1f;回答区 Matthew如果你在项目中…

DOS实用命令集合

1、进入目录 &#xff08;1&#xff09;进入C盘的Users文件夹&#xff1a;cd c:\Users &#xff08;2&#xff09;后退&#xff1a;cd .. &#xff08;3&#xff09;进入D盘&#xff1a;D&#xff1a; 2、获取特定格式的文件名列表 &#xff08;1&#xff09;文本文件&…