如何只读取行中特定位置包含某些字母的行

时间:2013-04-16 22:27:54

标签: awk

我有这种格式的文件:

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 个答案:

答案 0 :(得分:2)

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

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

输出:

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

grep相同的事情:

grep '^[[:alpha:]]' infile

答案 1 :(得分:0)

这取决于你想要做什么,但这是一个例子

awk 'BEGIN{min=2;max=5}
{
 if (NR>=min)
{
if(NR<=max)
print
}
}' filename

答案 2 :(得分:0)

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

grep -e "^[^ ]"

在awk中:

awk '/^[^ ]/'

答案 3 :(得分:0)

以下是:

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

我注意到,对于你的例子,这也有效::))

awk '/,/'