Gle*_*n31 2 shell grep sed awk shell-script
我有两个文件,A和B.
文件A是一个字母,如下所示,每行包含几个占位符字符串,如<@userid>.
<@U39RFF91U> for all the help in this project!
Thanks for your help to enhance the data quality <@U2UNRTLBV> <@U39RFF91U> <@U2UQCN023>!
Thanks for <@U38F4TBQ9> <@U38F5PQ73> <@U38F747CZ> <@U39RT0G07> and <@U2UQ17U20> ’s great work at the New Product!
Successful release! <@U2WHAAU9H> <@U2ML3C551> <@U38F4TBQ9> <@U38F747CZ> <@U39RT0G07> <@U2UQ17U20> <@U38F5PQ73> <@U2N64H7C6>!
Praise <@U2X0APW3Y> for going above and beyond to help with the retail campaign!
Run Code Online (Sandbox Code Playgroud)
文件B是一个映射表,将所有用户 ID 映射到每个用户名:
U39RFF91U Person1
U2UNRTLBV Person2
Run Code Online (Sandbox Code Playgroud)
我想计算出一个最终文件,C,其中包含字母 in 的内容A,但所有占位符都替换为 file 中映射表中的相应内容B。
知道如何在 Linux 上通过 shell 脚本做到这一点吗?
您可以将映射转换为这样的sed编辑脚本:
$ sed -r 's#^([^[:blank:]]*)[[:blank:]]+(.*)#s/<@\1>/\2/g#' user_map.txt >script.sed
Run Code Online (Sandbox Code Playgroud)
鉴于这个例子,这将产生script.sed内容
s/<@U39RFF91U>/Person1/g
s/<@U2UNRTLBV>/Person2/g
Run Code Online (Sandbox Code Playgroud)
然后,您可以将此编辑脚本应用于文本文件:
$ sed -f script.sed letter.txt >completed_letter.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5324 次 |
| 最近记录: |