bashshell如何在找到匹配模式后将特定于文件的内容快速转换为另一个文件

bashshell如何在找到匹配模式后将特定于文件的内容快速转换为另一个文件,bash,shell,awk,sed,Bash,Shell,Awk,Sed,我希望得到如下结果: >cat file1.txt aa bb ccc dd ee fff >cat file2.txt 1 2 3 file1.txt中的空格将替换为file2.txt中的数字。直接使用awk aa1bb ccc2dd ee3fff 简要说明 NR==FNR{a[NR]=0;next}:将文件2中的每条记录存储到数组a sub(/\/,a[FNR]):用文件2中的a[FNR]替换空格,其中FNR将是文件2中的记录编号 追加的1将打印文件2中处理的每一行 通过a

我希望得到如下结果:

>cat file1.txt
aa bb
ccc dd
ee fff
>cat file2.txt
1
2
3

file1.txt中的空格将替换为file2.txt中的数字。

直接使用
awk

aa1bb
ccc2dd
ee3fff
简要说明

  • NR==FNR{a[NR]=0;next}
    :将文件2中的每条记录存储到数组a
  • sub(/\/,a[FNR])
    :用文件2中的
    a[FNR]
    替换空格,其中FNR将是文件2中的记录编号
  • 追加的
    1
    将打印文件2中处理的每一行

    • 通过awk
      awk
      <

      aa1bb
      ccc2dd
      ee3fff
      
      简要说明

      • NR==FNR{a[NR]=0;next}
        :将文件2中的每条记录存储到数组a
      • sub(/\/,a[FNR])
        :用文件2中的
        a[FNR]
        替换空格,其中FNR将是文件2中的记录编号
      • 追加的
        1
        将打印文件2中处理的每一行
      这项工作:

      $ awk 'NR==FNR{a[NR]=$0;next}{sub(/\ /,a[FNR])}1' file2 file1
      aa1bb
      ccc2dd
      ee3fff
      
      $paste此功能:

      $ awk 'NR==FNR{a[NR]=$0;next}{sub(/\ /,a[FNR])}1' file2 file1
      aa1bb
      ccc2dd
      ee3fff
      

      $paste
      粘贴
      +
      方法:

      $ paste <(cut -d " " -f1 file1.txt) file2.txt <(cut -d " " -f2 file1.txt) | tr -d $'\t'
      aa1bb
      ccc2dd
      ee3fff
      
      输出:

      paste file1.txt file2.txt | awk '{ print $1$3$2 }'
      

      粘贴
      +
      awk
      方法:

      $ paste <(cut -d " " -f1 file1.txt) file2.txt <(cut -d " " -f2 file1.txt) | tr -d $'\t'
      aa1bb
      ccc2dd
      ee3fff
      
      输出:

      paste file1.txt file2.txt | awk '{ print $1$3$2 }'
      

      使用bash while read循环

      aa1bb
      ccc2dd
      ee3fff
      
      读取时-u3 a b;read-u4n;做
      回声“$a$n$b”
      
      在读取循环时使用bash完成3

      aa1bb
      ccc2dd
      ee3fff
      
      读取时-u3 a b;read-u4n;做
      回声“$a$n$b”
      
      完成3感谢您的帮助~感谢您的帮助~如果您使用
      paste-d”“…
      您可以将管道放到
      tr
      如果您使用
      paste-d”“…
      您可以将管道放到
      tr