Mat*_*ndo 3 linux grep bash sed awk
我试图=> '.*',用另一个文件中的行替换一个文件中与正则表达式匹配的行。
两个示例文件。
文件 1:
'text_clear' => 'Clear',
'text_search' => 'Search',
'text_enabled' => 'Enabled',
Run Code Online (Sandbox Code Playgroud)
文件2:
emptied
lost
turned off
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 awk/sed/grep 运行 linux 命令来创建将输出的第三个文件
文件 3:
'text_clear' => 'emptied',
'text_search' => 'lost',
'text_enabled' => 'turned off',
Run Code Online (Sandbox Code Playgroud)
我已经成功地提取了我想要编辑的 python 脚本,但如果可能的话,我只想使用 linux 命令来执行这两项操作。
我已经为此苦苦思索了 3 个小时。任何帮助,将不胜感激。
Qua*_*odo 10
code.awk:
BEGIN{j=1}
NR==FNR{a[NR]=$0;next}
sub(/=> '.*',$/,"=> '"a[j]"',"){++j}
1
Run Code Online (Sandbox Code Playgroud)
awk -f code.awk file2 file1 > file3
Run Code Online (Sandbox Code Playgroud)
逐行解释:
j=1。file2数组中a。file1,对于每一行,尝试=> '.*',$用 的串联替换与正则表达式匹配的字符串=> ' a[j] ',。如果发生替换,则增加j。$ cat file3
'text_clear' => 'emptied',
'text_search' => 'lost',
'text_enabled' => 'turned off',
Run Code Online (Sandbox Code Playgroud)