我試圖改變一個重複的字符序列轉換爲數字。無論如何要忽略大小寫。忽略大小寫敏感在bash修剪
我試圖用改變全部小寫爲大寫。
echo "AAAAAAAAAABBBBBBBBBCcCCCCCcCC" | tr c C | tr -s "ABC" "123"
>123
有沒有更好的方式來忽略大小寫。
我試圖改變一個重複的字符序列轉換爲數字。無論如何要忽略大小寫。忽略大小寫敏感在bash修剪
我試圖用改變全部小寫爲大寫。
echo "AAAAAAAAAABBBBBBBBBCcCCCCCcCC" | tr c C | tr -s "ABC" "123"
>123
有沒有更好的方式來忽略大小寫。
如果您有機會獲得GNU Awk
你可以用它IGNORECASE
功能這一點。
echo "AAAAAAAAAABBBBBBBBBCcCCCCCcCC" | awk 'BEGIN{IGNORECASE=1}{gsub(/[A]+/,"1") ;gsub(/[B]+/,"2"); gsub(/[C]+/,"3")}1'
123
從man
頁面引用,
[..]另一個具體到gawk的方法,是將可變
IGNORECASE
設置爲非零值(參見內置變量)。當IGNORECASE
不爲零時,所有正則表達式和字符串操作都會忽略大小寫。更改的
IGNORECASE
值動態地控制程序的情況下的靈敏度,因爲它運行。因爲IGNORECASE
(最喜歡的變量)被初始化爲零的情況下是默認顯著[..]
使用GNU sed中,你可以做到這一點與忽略大小寫標誌:
str='AAAAAAAAAABBBBBBBBBCcCCCCCcCC'
sed -E 's/a+/1/Ig; s/b+/2/Ig; s/c+/3/Ig' <<< "$str"
123
或者使用tr
:
tr -s '[:lower:]' '[:upper:]' <<< "$str" | tr "ABC" "123"
123
您可以使用:'tr -s'[:lower:]''[:upper:]'<<<「AAAAAAAAAABBBBBBBBBCcCCCCCcCC」| TR「ABC」,「123」' – anubhava