提取大引号内的单词,但在用作撇号时保留它
Extract words within curly quotes but keep it when used as apostrophe
我有一个 UTF-8 文件,它有像这样的弯引号 ‘Awaara’
,在某些地方使用了弯引号,例如 don’t
和 don't'
。尝试将这些弯引号转换为单引号时会出现问题。转换为单引号后,如果不删除用作 don't , I'm
.
的所有单引号,我将无法提取单引号单词 'Awaara'
目标:转换卷曲 --> 单引号,删除单引号但保留撇号单引号。
这是我编写的代码,它转换但无法删除单引号内的单词:
#!/bin/bash
cat | sed -e "s/\’/'/g" -e "s/\‘/'/g" | sed -e "s/^'/ /g" -e "s/'$/ /g" | sed "s/\…/ /g" | tr '>' ' ' | tr '?' ' ' | tr ',' ' ' | tr ';' ' ' | tr '.' ' ' | tr '!' ' ' | tr '′' ' ' | tr ':' ' ' | sed -e "s/\[/ /g" -e "s/\]/ /g" -e 's/(/ /g' -e "s/)/ /g" | tr ' ' '\n' | sort -u | uniq | tr 'a-z' 'A-Z' >our_vocab.txt
输出为:
'AWAARA ---> Should be AWAARA
25
50
70
800
A
AD
AI
AMITABH
AND
ANYWAY
ARE
BACHCHAN
BECAUSE
BUT
C++
CAN
CHECK
COMPUTER
DEVAKI
DIFFICULT
.
.
.
HOON' --> Should be HOON
您可以使用
sed -E -e "s/([[:alpha:]]['’][[:alpha:]])|['‘’]/\1/g" \
-e 's/[][()>?,;.!:]|′|…/ /g' "" | tr ' ' '\n' | sort -u | \
tr 'a-z' 'A-Z' > our_vocab.txt
参见online demo。
我将几个 tr
命令合并为一个(第二个)sed
命令,并且 ([[:alpha:]]['’][[:alpha:]])|['‘’]
正则表达式删除了除字母之间的撇号之外的所有 '‘’
撇号。
我有一个 UTF-8 文件,它有像这样的弯引号 ‘Awaara’
,在某些地方使用了弯引号,例如 don’t
和 don't'
。尝试将这些弯引号转换为单引号时会出现问题。转换为单引号后,如果不删除用作 don't , I'm
.
'Awaara'
目标:转换卷曲 --> 单引号,删除单引号但保留撇号单引号。
这是我编写的代码,它转换但无法删除单引号内的单词:
#!/bin/bash
cat | sed -e "s/\’/'/g" -e "s/\‘/'/g" | sed -e "s/^'/ /g" -e "s/'$/ /g" | sed "s/\…/ /g" | tr '>' ' ' | tr '?' ' ' | tr ',' ' ' | tr ';' ' ' | tr '.' ' ' | tr '!' ' ' | tr '′' ' ' | tr ':' ' ' | sed -e "s/\[/ /g" -e "s/\]/ /g" -e 's/(/ /g' -e "s/)/ /g" | tr ' ' '\n' | sort -u | uniq | tr 'a-z' 'A-Z' >our_vocab.txt
输出为:
'AWAARA ---> Should be AWAARA
25
50
70
800
A
AD
AI
AMITABH
AND
ANYWAY
ARE
BACHCHAN
BECAUSE
BUT
C++
CAN
CHECK
COMPUTER
DEVAKI
DIFFICULT
.
.
.
HOON' --> Should be HOON
您可以使用
sed -E -e "s/([[:alpha:]]['’][[:alpha:]])|['‘’]/\1/g" \
-e 's/[][()>?,;.!:]|′|…/ /g' "" | tr ' ' '\n' | sort -u | \
tr 'a-z' 'A-Z' > our_vocab.txt
参见online demo。
我将几个 tr
命令合并为一个(第二个)sed
命令,并且 ([[:alpha:]]['’][[:alpha:]])|['‘’]
正则表达式删除了除字母之间的撇号之外的所有 '‘’
撇号。