輸入
> a='Vikas'
> echo $a
Vikas
我需要的輸出是
echo $a | <some command>
vIKAS
答案1
$ echo Vikas | LC_ALL=C tr a-zA-Z A-Za-z
vIKAS
該實用程式tr
翻譯字元;它需要兩個代表字符集的參數;然後,它將標準輸入複製到標準輸出,並將第一組中找到的每個字元替換為第二組中的相應字元。在此應用程式中,它將小寫字母替換為大寫字母,反之亦然。請參閱tr(1) 的手冊頁了解詳細資訊以及可以執行的其他處理tr
。
答案2
您可以使用帶有 [:upper:] 和 [:lower:] 選項的 tr 命令,如下所示:
echo "aBcDeF" |tr '[:upper:][:lower:]' '[:lower:][:upper:]'
AbCdEf
您也可以使用 sed 指令(代表「流編輯器」),如下所示:
echo "abcd ABCD" |sed 'y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/'
sed 具有更大的靈活性,這意味著您可以定義任何字元映射。例如,您可以使用以下命令將數字轉換為駭客字母:
echo "52065218802365" |sed 'y/0123456789/OIZEhSGLBP/'
SZOGSZIBBOZEGS