首页 > 系统相关 >linux 中 实现数据中指定的行的内容批量替换

linux 中 实现数据中指定的行的内容批量替换

时间:2022-12-25 14:02:07浏览次数:43  
标签:test4 批量 ss PC1 rr linux txt root 替换

 

001、

[root@PC1 test4]# ls
a.txt  coordinate.txt
[root@PC1 test4]# cat a.txt                                     ## 测试数据
dd ff sd 1
ss aa ee 2
xx vv zz 3
ss ww rr 4
aa ff jj 5
nn mm kk 6
ss rr uu 7
yy uu ee 8
ww rr 88 9
[root@PC1 test4]# cat coordinate.txt                          ## 替换的数据
3 MMM 7777
5 GGG 3333
8 QQQ 2222
[root@PC1 test4]# cp a.txt a.txt.bak
[root@PC1 test4]# awk '{if(NR == 1) {print $1 - 1, $0; a=$1} else {print $1 - a - 1, $0; a=$1}}' coordinate.txt    ## 生成打印空行的索引
2 3 MMM 7777
1 5 GGG 3333
2 8 QQQ 2222
[root@PC1 test4]# awk '{if(NR == 1) {print $1 - 1, $0; a=$1} else {print $1 - a - 1, $0; a=$1}}' coordinate.txt > coordinate2.txt     ## 将打印空行的索引保存为文件
[root@PC1 test4]# cat coordinate2.txt
2 3 MMM 7777
1 5 GGG 3333
2 8 QQQ 2222
[root@PC1 test4]# cat coordinate2.txt | while read {i,j,k}; do seq $i | while read m; do echo "" >> temp; done; echo $k >> temp; done     ## 打印出空行
[root@PC1 test4]# ls
a.txt  a.txt.bak  coordinate2.txt  coordinate.txt  temp
[root@PC1 test4]# cat temp


MMM 7777

GGG 3333


QQQ 2222

 

 

002、

[root@PC1 test4]# ls
a.txt  a.txt.bak  coordinate2.txt  coordinate.txt  temp
[root@PC1 test4]# cat a.txt             ## 测试数据
dd ff sd 1
ss aa ee 2
xx vv zz 3
ss ww rr 4
aa ff jj 5
nn mm kk 6
ss rr uu 7
yy uu ee 8
ww rr 88 9
[root@PC1 test4]# cat temp         ## 替换的数据


MMM 7777

GGG 3333


QQQ 2222
[root@PC1 test4]# cat coordinate2.txt
2 3 MMM 7777
1 5 GGG 3333
2 8 QQQ 2222
[root@PC1 test4]# awk '{print ""}' a.txt | paste - temp | sed 's/^\s\+//' | paste - -d "&" a.txt | sed 's/^&//' | sed 's/&.*//'     ## 替换脚本
dd ff sd 1
ss aa ee 2
MMM 7777
ss ww rr 4
GGG 3333
nn mm kk 6
ss rr uu 7
QQQ 2222
ww rr 88 9

 

标签:test4,批量,ss,PC1,rr,linux,txt,root,替换
From: https://www.cnblogs.com/liujiaxin2018/p/17003953.html

相关文章

  • linux 中实现数据按照行进行展开
     001、[root@PC1test]#lscoordinate.txt[root@PC1test]#catcoordinate.txt##测试数据3MMM5GGG8QQQ[root@PC1......
  • linux下对qt编写的程序进行部署
    当我们完成程序设计之后,需要将可执行程序交付客户,而运行环境里面可能是没有相关支持库的,这个时候就涉及到部署的相关问题。对于我们在Linux下基于QT编写的图像处理程序,......
  • 在Linux下OpenCV的下载和编译
    完整从代码编译OpenCV在很多情况下是必须的。总体上来看,都是下载、编译、配置这三个过程,其中一些细节值得注意,记录如下。这里以ubuntu为例,其他发行版可能略有不同。1......
  • ffmpeg+libmp3lame库安装(linux)
    1.安装lame(libmp3fame的安装包)下载链接:https://sourceforge.net/projects/lame/files/lame/这里下载的文件版本为lame-3.100.tar.gz编译并安装tar-zxflame-3.100......
  • Linux进程信号
    写在前面下面我们来学习Linux中第三个模块,进程信号.今天我们将正式解释kill指令为何可以杀掉进程,这里存在很多小的知识点,信号在谈正式的内容之前,我们需要想一下我们之前......
  • linux网络编程-线程——通过信号控制互斥锁
    1//由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,所以在使用pthread_create创建线程时,在编译中要加-lpthread参数2//gccpthread_sig_mutex.c-......
  • linux 中实现批量讲指定的行替换为特定的数据
     001、sed实现[root@PC1test4]#lsa.txtcoordinate.txt[root@PC1test4]#cata.txt##测试数据ddffsd1ssaaee2xxvvzz3ssw......
  • Linux C语言程序设计(微课视频版)
     LinuxC语言程序设计(微课视频版) 主编:张同光 出版单位:清华大学出版社 ISBN: ISBN: 出版时间:2023.6 CIP: 内容简介本书以“学完C语言之后知道能做什么”为编写目标,共包括......
  • Linux网络基础
    网络就是把分布在不同地理位置上的主机,通过传输介质(网线、卫星等)连接起来,实现主机之间数据传输共享的目的。OSI7层网络模型传输过程数据从一个主机A发送到主机B时候,......
  • linux网络编程-线程创建和退出
    线程创建函数:intpthread_create(pthread_t*thread,constpthread_attr_t*attr,void*(*start_routine)(void*),void*arg);第一个参数thread是出参,传出创建的线程......