Unix:有条件地逐行读取文件
Unix: Read file line by line conditionally
我有一个文件,
aaaa
bbbb,cccc
dddd
eeee,ffff
gggg,hhhh
iiii,jjjj
kkkk
我的输出应该是,
aaaa
dddd
kkkk
记录中只有一个字段...字段分隔符是 ","".
我试过了,
vi test.awk
BEGIN { FS = "[,]+" }
{
if (NF==1) {
key = [=12=]
} print
}
awk -f test.awk source
但是没有用。请帮忙。
以下应该有效
awk -F',' '(NF==1){print [=10=]}' input_file
使用-F
标志将记录分隔符设置为逗号,然后当字段数NF
等于1
时只打印整行[=13=]
或者简而言之,如@nu11p01n73R 所指出的
awk -F, 'NF==1'
跳过有逗号的行。
awk '!/,/' file
你也可以使用这个简短的sed
:
sed '/,/d' file
aaaa
dddd
kkkk
它删除所有带有,
的行
grep
就足够了:
fgrep -v , file
输出:
aaaa
dddd
kkkk
我有一个文件,
aaaa
bbbb,cccc
dddd
eeee,ffff
gggg,hhhh
iiii,jjjj
kkkk
我的输出应该是,
aaaa
dddd
kkkk
记录中只有一个字段...字段分隔符是 ","".
我试过了,
vi test.awk
BEGIN { FS = "[,]+" }
{
if (NF==1) {
key = [=12=]
} print
}
awk -f test.awk source
但是没有用。请帮忙。
以下应该有效
awk -F',' '(NF==1){print [=10=]}' input_file
使用-F
标志将记录分隔符设置为逗号,然后当字段数NF
等于1
[=13=]
或者简而言之,如@nu11p01n73R 所指出的
awk -F, 'NF==1'
跳过有逗号的行。
awk '!/,/' file
你也可以使用这个简短的sed
:
sed '/,/d' file
aaaa
dddd
kkkk
它删除所有带有,
grep
就足够了:
fgrep -v , file
输出:
aaaa
dddd
kkkk