我想从文件中提取匹配模式后的一些内容。
$ 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/