1

我有一个这种格式的文件:

Some, Text 
     sub text 1
     sub text 2
     sub text 3

Foo, Bar
   bar1
   bar2
   bar3

Shui, Wong K
       subtext1

Other Stuff
    something else

如何仅从该文件中提取主要行,以便新文件包含:

Some, Text
Foo, Bar
Shui, Wong K
Other Stuff
4

4 回答 4

2

告诉 awk 只打印以字母开头的行

awk '/^[[:alpha:]]/' infile

输出:

Some, Text 
Foo, Bar
Shui, Wong K
Other Stuff

或与以下内容相同grep

grep '^[[:alpha:]]' infile
于 2013-04-16T22:33:02.363 回答
0

以下工作在这里:

awk '/^\S/'
grep '^\S' 

我注意到对于您的示例,这也可以::)

awk '/,/'
于 2013-04-16T22:52:06.980 回答
0

这完全取决于您要做什么,但这是一个示例

awk 'BEGIN{min=2;max=5}
{
 if (NR>=min)
{
if(NR<=max)
print
}
}' filename
于 2013-04-16T22:31:50.277 回答
0

使用正则表达式匹配除以空格开头的行以外的任何内容。我认为不需要 awk,我会使用 grep 代替:

grep -e "^[^ ]"

在 awk 中:

awk '/^[^ ]/'
于 2013-04-16T22:35:38.297 回答