我有一個UTF-8 檔案,其中包含‘Awaara’像這樣的大引號,并且在某些地方使用大引號,例如don’t和don't'. 嘗試將這些花引號轉換為單引號時會出現問題。轉換為單引號后,如果'Awaara'不洗掉所有用作don't , I'm.
目標:轉換 curly--> single,洗掉單引號但保留撇號單引號。
這是我撰寫的代碼,它轉換但無法洗掉單引號內的單詞:
#!/bin/bash
cat $1 | 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
uj5u.com熱心網友回復:
您可以使用
sed -E -e "s/([[:alpha:]]['’][[:alpha:]])|['‘’]/\\1/g" \
-e 's/[][()>?,;.!:]|′|…/ /g' "$1" | tr ' ' '\n' | sort -u | \
tr 'a-z' 'A-Z' > our_vocab.txt
請參閱在線演示。
我將幾個tr命令合并為一個(第二個)sed命令,并且([[:alpha:]]['’][[:alpha:]])|['‘’]正則運算式洗掉了'‘’除字母之間的撇號之外的所有撇號。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/478752.html
