我想从文件中提取匹配模式后的一些内容。

$ cat test
setenv se_boot_opt heap=0x100000 node_type=IB
namedalloc GWUP_FEATURE_MEMORY_BLOCK 0x480000000 0x16093A000
namedprint
setenv se_boot_opt2 heap=0x256000 node_type=AB

我需要逐行处理输入文件。每行都需要检查以下内容。
如果该行以setenv单词开头,则应省略前两个单词,并打印/输出该行中的剩余内容。
如果行以namedalloc开头,则应替换为uboot_namedalloc字。
我只想在我的输出下面几行。
heap=0x100000 node_type=IB
uboot_namedalloc GWUP_FEATURE_MEMORY_BLOCK 0x480000000 0x16093A000
namedprint
heap=0x256000 node_type=AB

最佳答案

这个脚本可以做到:

$ awk '$1=="setenv"{$1=$2="";sub(/ */,"")}$1=="namedalloc"{$1="uboot_"$1}1' file
heap=0x100000 node_type=IB
uboot_namedalloc GWUP_FEATURE_MEMORY_BLOCK 0x480000000 0x16093A000
namedprint
heap=0x256000 node_type=AB

关于linux - 在Linux中进行模式匹配后提取内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18076331/

10-12 02:58