linux比对文件替换字符,Linux-用另一个文件中的值替换文件中的字符串

这篇文章介绍了如何使用awk脚本,通过文件A中的数字索引来替换文件B中的对应值。脚本利用awk的NR==FNR条件和关联数组功能,实现了从一个文件读取键值对,然后应用到另一个文件中。这对于数据清洗或格式转换非常实用。
摘要由CSDN通过智能技术生成

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

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时,这是正确的.形成一个关联数组,其中索引是第二列,第一列为其值.

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

1 =>打印每一行.

标签:linux,shell,awk,sed,unix

来源: https://codeday.me/bug/20191010/1885188.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值