shell脚本问题:如何将一个文件的内容跟另一个文件指定的内容逐行匹配后替换

cat file1.txt
aa bb
ccc dd
k pppp

cat file2.txt
1
2
3

将文件1中的空格替换成文件2的数字输出
aa1bb
ccc2dd
k3pppp

求指引,自己一直在学习sed,但是这个超出了目前的理解范围。

2个回答

自己写的脚本, 供参考

自动替换/dir_to_replace里面全部与*.tpl匹配的文件, 替换规则从EOF开始, 到EOF结束

 #!/bin/bash
#自动替换/dir_to_replace里面全部与*.tpl匹配的文件, 替换规则从EOF开始, 到EOF结束

if [ $# -ne 1 ]; then
  echo "usage: $0 /dir_to_replace"
  exit 0
fi

while read -r pattern replacement; do   
    echo "$pattern --> $replacement"
    find $1 -type f -name "*.tpl" -exec sed -i "s=$pattern=$replacement=g" {} \;
done <<EOF
aa bb
ccc ddd
k pppp
EOF

Below works:
awk 'NR==FNR{a[NR]=$0;next}{sub(/\ /,a[FNR])}1' file2 file1

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
sed命令——替换shell脚本指定内容
sed -e ... #临时替换 例子: sed -e'5s/aaa/bbb/' file.txt #临时替换,将文件第5行的aaa替换成bbb sed -i ... #永久替换 sed -i'5s/aaa/bbb/' file.txt #永久替换,将文件第5行的aaa替换成bbb ...
轻松替换指定文件夹里的所有内容匹配的文件!
LINUX上直接执行   sed -i "s/com.tencent/com.devstore.tencent/g" `grep com.tencent -rl .` WINDOWS 上需要使用包含linux 命令的命令行,如CYGWIN 、 GIT 都行。 例如:替换/home下所有文件中的www.itbbs.cn为chinafar.com sed -i "s/ww
如何逐行读文本文件的内容?
请教一下:rn如何逐行读文本文件的内容?能给段例子将不胜感激 rn
doc文件替换内容
package com.test;import java.io.ByteArrayOutputStream;  import java.io.File;  import java.io.FileInputStream;  import java.io.FileNotFoundException;  import java.io.FileOutputStream;  import java.io...
替换文件中的内容!
我现在有一个1.dat的文件,要把这个文件中的192.168.1.1替换成202.115.64.33不知道用vc怎么做那?给点思路。有代码全送分
docx文件替换内容
package com.test;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream...
切割一个文件指定偏移的内容到另一个文件的命令行工具
切割一个文件指定偏移的内容到另一个文件的命令行工具
vim中如何将一个文件的内容拷贝到另一个文件中
如要将a.txt的内容拷贝到b.txt中,可以执行如下步骤: 用vim打开b.txt。将光标定位到要复制插入的位置,然后进入命令模式中输入 :r!cat a.txt 保存退出:wq!搞定~~
CMD下运行vbs替换指定文件的内容
我自己写的,其中rename.vbs可以替换指定文件的指定内容, 前置条件: 1. Win32 2. 可运行vbs的命令行 使用方法: 1. 命令: rename.vbs "Parth/To/your_file.ext" "string_in_file" "string_to_replace_string_in_file" 2. 稍等片刻 后置条件: 无
把一个文件的内容复制到另一个文件
这是一个用JAVA编写的,用于把一个文本文件的内容复制到另一个,还能合并两个文本文件的小程序,非常简单,希望能给初学JAVA的朋友一点帮助。如果这个程序有什么 问题,联系我felixlee@yeah.net
python替换文件中的指定内容
python替换文件中的指定内容
如何将一个文件的内容清空?
如题。我想覆盖以前的文件。rn用的是stdFile类,这个类的函数我都看了,rn没有觉得适合我要求的。rn怎么办?
求一个shell脚本,可以将一个文件的内容,插入到另一个文件的指定的行处
sed只能插入一个字符串,我想把整个文件都插进去,有什么思路?
指定替换某一次匹配的内容
源码:diillllsddffdiwjkasdmieeeeweweieiweiwieiwerrn我要在每个标签后加上不同的内容,应该怎么实现,请给出代码感激不尽,全部分送上。rn变化后的代码应该是rndiillllsddff1 diwjkasdm2 ieeeewewe3 ieiweiwieiwer4 问题补充: rn$cont = 'diillllsddffdiwjkasdmieeeeweweieiweiwieiwer';rn$preg = "//is"; rn$cont = preg_replace($preg,'\0',$cont);rn不过这个不能实现,这个一替换就替换完了,不能实现一个一个替换。rn
文件匹配替换问题
有两个文件,1.txt和2.txt.分别有多列,每列用"|"分开,现在要将1.txt第3列的值去匹配2.txt的第2列,如果匹配成功,将2.txt中的第四列的值替换1.txt第三列的值,都没有排序,数据量都在100万行左右,请教有没有好的算法?
读出指定文件的内容?
game.inirnrn游戏1 c:\cs.exe c:\cs.icorn游戏2 c:\cs.exe c:\cs.icorn游戏3 c:\cs.exe c:\cs.icornrnrn....rnrn各传给三个变量数组rngame1(0)=游戏&rnpath1(0)=path&rnico1(0)=path&rnrnrnrn请教要如何识现。rn
请问如何将指定内容打印到文件?
与用打印机打印有什么不同?
shell脚本——判断文件的属性、内容、、
#!/bin/sh  #文件路径 :/usr/local/1.txt read myfile1 read myfile2 #判断文件1是否存在 if [ -e $myfile1 ]; then    echo '文件存在';     #判断文件1是否为空       if [ -s $myfile1 ]; then           echo '这个文件不为空';  
逐行读取指定文本文件的内容
void read_csv_data(char* path) { FILE *fp = NULL; char strLine[1024]; int ret = fopen_s(&amp;amp;fp, path, &quot;r&quot;); if (ret != 0) return; while (!feof(fp)) { fgets(strLine, 1024, fp); ...
如何在用shell脚本读取一个文件中指定的内容?
procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------rn r b swpd free buff cache si so bi bo in cs us sy id wa strn 0 0 268 107464 973580 5540856 0 0 3 9 1 0 1 0 99 0 0rn 0 0 268 108092 973580 5540856 0 0 0 12 406 12054 4 1 94 0 0rn 1 0 268 107844 973580 5541884 0 0 0 140 444 13201 4 0 95 0 0rn 0 0 268 107984 973580 5541884 0 0 0 242 438 12966 2 0 97 0 0rn 1 1 268 108108 973580 5541884 0 0 0 250 462 12840 4 0 94 2 0rn 0 0 268 108108 973580 5541884 0 0 0 2 416 12750 3 0 97 0 0rn 1 0 268 107992 973580 5541884 0 0 0 212 411 12492 4 0 95 0 0rn 1 0 268 107232 973580 5541884 0 0 0 50 419 12441 4 0 96 0 0rn 2 0 268 104732 973580 5541884 0 0 0 34 407 13177 6 4 90 0 0rn 0 0 268 104864 973580 5541884 0 0 0 406 419 12262 5 0 95 1 0rn假如我要读取id列下面的所有数据,我该怎么写脚本,给出详细的说明(本人对shell脚本不怎么了解),谢谢!!!!
Java 替换文件夹下所有文件中指定的内容
Java IO流,Map基础功能。
jquery 替换指定内容
想在下面代码中的 tbody 标签内的 每一行的末尾添加一个单选按钮rn也就是 这样的格式 注意是 tbody内的部分不是所有的,用jquery实现rn###############################################################################rn rn rn rn rn 属性编号rn rn rn 属性名称rn rn rn rn rn rn rn 44974620000200020002rn rn rn XLLrn rn rn rn rn 44974620000200020001rn rn rn XLrn rn rn rnrn rn rn 上一页 rn 1rn 下一页rn rn 共2条rnrn
Linux在指定文件指定行插入内容shell脚本
Linux在指定文件指定行插入内容shell脚本,参数请见脚本注释
Python 替换文件中内容
def test(): ''' 替换原理: 1、open打开文件 采用r+模式 2、读取文件内容 3、将文件读写指针移位到文件开始位置 seek(0,0) 4、遍历文件内容,并替换指定指定字符串 5、重新写入文件 其他:我在window下执行的,在Linux执行原理一样
替换文件里内容(遍历)
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using ...
IO文件的读写 替换内容
import java.io.*;rnpublic class InputStream rnrn /*rn*inputStream.txtrnrn*sssssrn*serwefrn*asdfasfrn*easdfrn*美国rn*asdfern*asdrn*fasrn*/rn public static void main(String[] args)rn rn BufferedReader buff;rn String read,str="";rn tryrn File file= new File("F:\\inputStream.txt");rn FileReader filRead= new FileReader(file);rn buff = new BufferedReader(filRead);rn //文件写入rn FileWriter fw=new FileWriter(file,true);rn rn while((read=buff.readLine())!=null)rn if(read.equals("美国"))rn rn read="中国";rn //想把美国的字段替换成中国 下面该怎么写啊rn //??rn// fw.write(read);rn// fw.close();rn rn rn str=str+"\n"+read;rn rn fw.close();rn catch(Exception e)rn System.out.println(e.getMessage());rn rn rn System.out.println(str);rn rnrnrnrn
如何将两个文件的内容一起复制到一另一个文件中去?
如何将两个文件的内容一起复制到一另一个文件中去?
如何将一个文件中的行中的特定内容匹配后添加内容
文件A中有如下内容:rnADCY3 |plasma membrane|cell membrane|cytoplasmic membrane|plasmalemma|rnADCY4 |integral to membrane|rnADCY7 |plasma membrane|cell membrane|cytoplasmic membrane|plasmalemma|rnADCYAP1 |extracellular|rnrnA中的第二列(以\t分割)如plasma membrane 与 文件B有对应关系,现在想在A中加一列,此列储存B中对应的信息rnB如:rnGo:1111 plasma membranernGo:1112 cell membranernrn要求A的结果类似:rnADCY3 |plasma membrane|cell membrane|cytoplasmic membrane|plasmalemma| |Go:1111|Go:1112|Go:1111|Go:1111|rnrn$^I = ".bak";可以打开备份文件,但是我还不是很懂如何实现,请大家帮忙
如何将一个结构体内容写入一个文件
大致如下rn//.hrnstruct rnrn BOOL bEnable;rn BOOL bAdmin;rn BOOL bOK;rnOO;rnrn//.cpprn...rnOO oo;rnoo.bEnable = 1;rnoo.bAdmin = 0;rnoo.bOK = 1;rnrn需要将赋值以后的结构体内容写入一个文件,而且以后还要能够从这个文件里面还原出结构体内容是什么rnrn如何做?谢谢rnrn最好使用MFC自己的类
如何将许多Editbox的内容逐行写入到text文件中? 急!
有将近一百多个editbox,如何将这些编辑框的内容写入到text文件中?有什么高效的方法?
把一个文件里的内容复制到另一个文件的问题
有两个磁盘文件a和b,要求把这两个文件中的信息合并(按字母顺序排列),输出到新文件c中去rn学c的时候没学,现在饭回来学,有点问题rn我这里假设a和b中存的都是英文字母rna中为abcdeeeeeefg b中为abbbdcz,复制到c后出现的是aabbbbcddceeeeeefgz空格处都是一个非法字符请指点rnrn#include rn#include rnrnvoid main()rnrn FILE *fp_a,*fp_b,*fp_c;rn char ch;rn char a1[50],b1[50];rn char *a=a1,*b=b1;rn //打开a文件rn if( (fp_a=fopen("a1.txt","r"))==NULL )rn rn printf("cannot open file a.txt\n");rn exit(0);rn rn //打开b文件rn if( (fp_b=fopen("b1.txt","r"))==NULL )rn rn printf("cannot open file b.txt\n");rn exit(0);rn rn //打开c文件rn if( (fp_c=fopen("c1.txt","wr"))==NULL )rn rn printf("cannot open file c.txt\n");rn exit(0);rn rn while( !feof(fp_a) )rn rn *a++=fgetc(fp_a);rn rn *a='\0';rn while( !feof(fp_b) )rn rn *b++=fgetc(fp_b);rn rn *b='\0';rn a=a1;b=b1;rn while( *a && *b )rn rn if(*a <= *b)fputc(*a++,fp_c);rn else fputc(*b++,fp_c);rn rn while( *a )fputc(*a++,fp_c);rn while( *b )fputc(*b++,fp_c);rn //关闭文件rn rn fclose( fp_a );rn fclose( fp_b );rn fclose( fp_c );rn
输出文件//后的内容
问题:建立一个test.cpp文件,然后用另外一个主程序读取里面的内容,把注释标志//后面的内容输出。#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;string.h&amp;gt; int main() { FILE *fp1,*fp2,*fp3; char filename[20],str[1000]; char ch1,ch2,ch; //...
C++中如何将一个文件的内容添加到另一个文件指定的行中(如第十行)
[img=https://img-bbs.csdn.net/upload/201508/05/1438743883_709130.png][/img]rnrn如何在这个txt中的指定行(如第十行)插入另一个文件的内容?rnrnrn另一个文件的内容为下图,其中有两部分,前三行插入到上面txt文件的第十行,后三行插入到上面txt的第十一行。rn[img=https://img-bbs.csdn.net/upload/201508/05/1438743943_365752.png][/img]
awk逐行拼接两个文件的内容
用awk逐行拼接两个文内容 最近给数据库导数据时,遇到需要把两个数据文件逐行拼接为一个文件,想起好基友awk来了,之前只请它帮忙搞基过从数据行中提取某几列数据,但还没试过从多个文件中合并数据的搞法。但我相信这位好基友,肯定还有很多搞基的花样,那就借这次机会,调一下它的鱼 :|) 具体是这样的,有两数据文件file1,file2 file1内容: 我是鱼饵 我还是鱼饵 你是鱼饵 你不是鱼饵...
Shell脚本方法--从文件中逐行读取内容
从文件逐行读取数据的方法有两种,一种是在while循环或until循环中使用read命令,通过文件描述符一行一行的读取文件内容;另一种是在for循环中使用cat &amp;lt;filename&amp;gt;来读取文件的内容。1.使用for循环从文件中逐行读取内容:在默认情况现下此方法是逐个单词的读取文件内容,因为使用这种方法读取文件时,他使用环境变量IFS的值作为分隔符,由于IFS的默认值是“&amp;lt;spac...
用文件方式复制内容到另一个文件
代码主题: /***************************************************** copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd.  File name: Author:Jerey_Jobs    Version:0.1    Date:  Description: Funcion
如何将文件的内容导入文本框!
如何将文件的内容导入文本框!
如何修改指定文件的内容?
用什么函数可以打开一个文件(文本或二进制)并修改它?rn怎么实现?请赐教,谢谢!
如何清空指定文件的内容?
RT
给指定文件追加内容
本套课程介绍的PMS系统中我们将 Bootstrap 应用到了 jQuery UI 控件上,使得前台更加优化完美。同时采用了双机热备方案,全面提升了系统安全运行。其次为了保证数据的安全性稳定性以及数据的全新,采用了oracle数据库。课程结合实际案例讲解开发,从应用架构,数据库架构,技术架构,以及架构管控多方面结合案例深入学习介绍
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表