当前位置: 首页 > 面试题库 >

用另一个文件中的值替换文件中的字符串

岳研
2023-03-14
问题内容

我有两个文件。其中一个定义了一组数字-值对,如下所示( fileA ):

 1  asm
 2  assert
 3  bio
 4  bootasm
 5  bootmain
 6  buf
 7  cat
 8  console
 9  defs
10  echo

另一个文件包含一堆值配对,如下所示( fileB ):

bio types
bio defs
bio param
bio spinlock
bio buf
bootasm asm
bootasm memlayout
bootasm mmu
bootmain types
bootmain elf
bootmain x86
bootmain memlayout
cat types
cat stat
cat user

我想编写一个脚本,用文件A中的对应数字替换文件B中的值。生成新文件还是更改现有文件B都没有关系。

有任何想法吗?谢谢


问题答案:
awk 'NR==FNR{a[$2]=$1;next}{$1=a[$1];}1' fileA fileB

NR == FNR {a [$ 2] = $ 1; next} =>处理fileA时为true。形成一个关联数组,其中索引是第二列,第一列为其值。

{$ 1 = a [$ 1];} =>处理第二个文件时,将第一列替换为数组中存储的适当值。

1 =>打印每一行。



 类似资料:
  • 问题内容: 我已经弄清楚了,并尝试像这样的命令来替换字符串: 现在,我想对文件中的另一个字符串执行相同的操作,但正如我的问题所述,我需要先从另一个文件中复制内容,然后替换一个字符串,例如: 还有一件事,内容(要复制)中有下一行和空白,我想在复制之前将其删除。它还具有反斜杠和正斜杠,希望他们在替换内容时不会造成任何问题)。这是我要复制的内容: 我也可以将文件的内容复制到变量中: 我所需要做的就是从此

  • 我想在文本文件中用新的英文字符替换突厥语字符{code>{c',c',I',I',G',G',S',S}。 这是我的密码。我在控制台上只获得原始内容,没有任何更改,也不会创建新文件。 编辑: 这是适用于我的新代码。但是我想使用一个较短的代码来替换方法。

  • 问题内容: 我正在寻找一种替换文件中的字符串而不将整个文件读入内存的方法。通常我会使用Reader和Writer,例如以下内容: 但是,我想就地进行替换,并且不认为可以同时在同一文件上打开Reader和Writer。另外,我正在使用Java 1.4,因此无法访问NIO,扫描仪等。 谢谢唐 问题答案: 通常无法对文件进行“就地”替换,除非替换的长度与原始长度完全相同。否则,文件将需要增大,从而将所有

  • 问题内容: 我使用md5 grunt任务生成MD5文件名。现在,我想在任务的回调中使用新文件名重命名HTML文件中的源。我想知道什么是最简单的方法。 问题答案: 您可以使用简单的正则表达式: 所以…

  • 问题内容: 我是shell脚本的新手,并且对如何使用字符串或其他工具替换文本文件中的第一行感到困惑。这是文本文件的内容: 我想将第一行(电影文件路径)替换为just (可能是shell脚本中的变量) 请指导我如何执行此操作。我遇到了一些帖子,我需要在这里使用吗? 问题答案: sed是正确的工具,请尝试执行以下操作: 说明 平均第一行 剩下的就是替换:我们用变量替换所有(。*)

  • 我有一个文件,其中包含以下格式的正则表达式和替换文字字符串列表: 我想替换所有匹配的字符串与在多个文件。 我相信这是一个常见的问题,以前应该有人做过类似的事情,但我就是找不到用bash编写的现有解决方案。 例如: 输入: 预期产出: 主要挑战是: 要替换的字符串由POSIX扩展正则表达式描述,而不是文字,任何不是POSIX ERE元字符的字符,包括经常被一些工具用作regexp分隔符的,都必须被视