入力
> 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
文字を変換します。文字セットを表す 2 つの引数を受け取り、標準入力を標準出力にコピーして、最初のセットで見つかった各文字を 2 番目のセットの対応する文字に置き換えます。このアプリケーションでは、小文字を大文字に、大文字を小文字に置き換えます。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