0
我的「測試」文件有3種空行:爲什麼在這種情況下grep反轉與否定不一樣?
$ cat -nA test
1 This is line 1 and it's followed by a blank line$
2 $
3 This is line 2 and it's followed by a 'blank' line with 3 tab characters$
4 ^I^I^I$
5 This is line 3 and it's followed by a 'blank' line with 3 whitespace characters$
6 $
7 This is line 4$
如果我用grep開始與POSIX字符類空行「空白」或「空間」,我得到空行開始與標籤或空白:
$ grep -n '^[[:blank:]]' test
4:
6:
$ grep -n '^[[:space:]]' test
4:
6:
如果我顛倒搜索我得到的所有其他線路:
$ grep -nv '^[[:blank:]]' test
1:This is line 1 and it's followed by a blank line
2:
3:This is line 2 and it's followed by a 'blank' line with 3 tab characters
5:This is line 3 and it's followed by a 'blank' line with 3 whitespace characters
7:This is line 4
$ grep -nv '^[[:space:]]' test
1:This is line 1 and it's followed by a blank line
2:
3:This is line 2 and it's followed by a 'blank' line with 3 tab characters
5:This is line 3 and it's followed by a 'blank' line with 3 whitespace characters
7:This is line 4
但是,如果我否定搜索我只得到了非空力nes:
$ grep -n '^[^[:blank:]]' test
1:This is line 1 and it's followed by a blank line
3:This is line 2 and it's followed by a 'blank' line with 3 tab characters
5:This is line 3 and it's followed by a 'blank' line with 3 whitespace characters
7:This is line 4
$ grep -n '^[^[:space:]]' test
1:This is line 1 and it's followed by a blank line
3:This is line 2 and it's followed by a 'blank' line with 3 tab characters
5:This is line 3 and it's followed by a 'blank' line with 3 whitespace characters
7:This is line 4
爲什麼在這裏不作否定呢?