0

我想使用 UNIX Bash 命令根据“代码”编号仅保留 .txt 文件的某些行:

Name  
Ignore  
2    
1357 1817  
1366 1857  
Name 
Ignore  
3   
293 142  
302 181 
303 181
Name  
Ignore  
7  
1596 1787  
1595 1787  
1594 1787  
1565 1803  
1565 1804  
1565 1805  
1565 1806
Other-name
No-interest
No-interest
No-interest

所以只有带有“名称”的行是有意义的。“其他名字”不感兴趣。“名称”之后的第二行是“名称”感兴趣的行数的代码。但我不想保留所有,只保留代码行后面的第一行和最后一行。因此,如果代码 i 3,我希望在代码行之后的第 1 行和第 3 行。如果代码 i 7,我希望在代码行之后的第 1 行和第 7 行。在前。上面的输出应该是:

1357 1817  
1366 1857    
293 142  
303 181
1596 1787    
1565 1806

非常感谢!

4

1 回答 1

3

你可以试试

awk -f ext.awk input.txt

input.txt你的输入文件在哪里,ext.awk

/^Name/ {
    getline
    getline
    n=$1
    for (i=1; i<=n; i++) {
        getline
        if (i==1 || i==n) print
    }
}
于 2013-11-09T13:06:36.043 回答