2

に一致するファイルからすべての行を削除する必要があります。read (symbol)ここで、(symbol)は任意のCJK文字です。試合でread (symbol)は、直前にAZまたはazがありますが、その行は削除しないでください。たとえば、ここにいくつかのサンプルラインと結果があります:

Do you like to read books? (not deleted)
Can you read 书? ( deleted)
.read 书. (deleted)
This is some thread 线. (not deleted)

一致する行のみを削除するにはどうすればよい(not A-Z or a-z)read (CJK symbol)ですか?

4

2 に答える 2

1
awk '$0~/ read [a-zA-Z]+/' your_file
于 2012-09-13T13:15:57.593 に答える
1

CJK文字を一致させる方法は完全にはわかりませんが、ASCII以外の文字を一致させると、探している結果が得られる可能性があります。

grep -vP "[^A-Za-z]read [\x80-\xFF]" file.txt

理論的には、次のことができるはずです。

grep -vP "[^A-Za-z]read [\x{2E80}-\x{9FBB}]+" file.txt

ただし、私のテストでは、エラーが発生します。

grep: character value in \x{...} sequence is too large

http://en.wikipedia.org/wiki/List_of_Unicode_characters#CJK_unified_ideographs

編集:

LC_ALL="POSIX" sed -r '/[^A-Za-z]read [\o200-\o377]+/d' file.txt

結果:

Do you like to read books? (not deleted)
This is some thread 线. (not deleted)

以下も参照してください。

特定の記号の直後に表示されるすべてのCJKテキストを削除するにはどうすればよいですか?

于 2012-09-13T13:23:20.957 に答える