有人可以幫忙嗎?
爲什麼命令awk過濾失敗'/ x20- x7F /'
awk '!/\x20-x7F/
打印的字母 「a」 時與字母 「a」 中的CentOS 5運行,5.97 coreutils的,提供的bash 4.2.0(1)?由於字母「a」是\ x61,因此該命令應該否定過濾字母「a」。
此外,
awk '/\x20-x7F/
不打印的「一」,在相同的情況下,但將打印比\ 0x7F部分更大的角色?
有人可以幫忙嗎?
爲什麼命令awk過濾失敗'/ x20- x7F /'
awk '!/\x20-x7F/
打印的字母 「a」 時與字母 「a」 中的CentOS 5運行,5.97 coreutils的,提供的bash 4.2.0(1)?由於字母「a」是\ x61,因此該命令應該否定過濾字母「a」。
此外,
awk '/\x20-x7F/
不打印的「一」,在相同的情況下,但將打印比\ 0x7F部分更大的角色?
正則表達式不能這樣工作。
/\x20-x7F/
這意味着字符-x7F
(space
+ -
+ x
+ 7
+ F
)
它不會從根本 - >到。它只是將\x20
轉換爲空格,並將其餘字符作爲字符。
cat file
1 a
2 b
3 -x7F
4 c
這給出了第3行,因爲它有你正在尋找的模式。
awk '/\x20-x7F/'
3 -x7F
她需要的所有訂單除了線3
awk '!/\x20-x7F/'
1 a
2 b
4 c
字符範圍被包含在方括號,例如例如[0-9]
,並且用梳子炭灰否定[^0-9]
。嘗試awk '/[^\x20-\x7F]/'
,假設\x20
和\x7F
識別一些字符。
謝謝你,埃德。我得到一個語法錯誤在打開「[」。 – user3877935
@ user3877935它應該是'awk'/ [\ x20- \ x7F] /''。 – Jotne
更新,謝謝@Jotne –
對不起,我忘了在我的stackoverflow例子中的x7F前面輸入反斜槓,儘管它在我的命令行中。所以,awk'/ \ x20- \ x7F /'不能按我的意願工作。 – user3877935
@ user3877935如果添加反斜槓,它將變成' - '。最後的空間是ascii 127(7f)。這是一種表達,而不是從一個角色到另一個角色。它就像'/ a-b /' – Jotne
一樣謝謝。我不太瞭解你的評論。你會寫什麼awk語句來僅打印由x20到x7F範圍內的字符組成的行? – user3877935