shell tr
tr(translate略称)は、主にファイル内の制御文字を削除したり、文字変換したりするために使用されます.構文:tr[–c/d/s/t][SET 1][SET 2]
SET 1:文字セット1
SET 2:文字セット2
-c:complement、SET 1に含まれていない文字-d:deleteをSET 2で置き換え、SET 1のすべての文字を削除し、変換しない-s:squeeze-repeats、圧縮SET 1の繰り返し文字-t:truncate-set 1、SET 1をSET 2で変換し、一般的にデフォルトは-t
大文字と小文字の変換
端末では,一言小文字が大文字になり,[-t]はこのパラメータが有無を示す.
SET 1:文字セット1
SET 2:文字セット2
-c:complement、SET 1に含まれていない文字-d:deleteをSET 2で置き換え、SET 1のすべての文字を削除し、変換しない-s:squeeze-repeats、圧縮SET 1の繰り返し文字-t:truncate-set 1、SET 1をSET 2で変換し、一般的にデフォルトは-t
大文字と小文字の変換
端末では,一言小文字が大文字になり,[-t]はこのパラメータが有無を示す.
echo "Hello world!" | tr [-t] '[a-z]' '[A-Z]'
终端中,一句话大写变小写
ファイルの内容を変更し、大文字と小文字を変換echo "Hello world!" | tr [-t] '[A-Z]' '[a-z]'
cat test.txt | tr '[a-z]' '[A-Z]' > test1.txt
重複する文字を削除同じ文字を1文字$echo aaccddd|tr-s[a-z]acd$echo aaccddd|tr-s[abc]acddd空白行を削除削除空白行を削除改行/n#注意:これらの空白行にはリターン記号のみ、スペース記号$cat testはありません.txtI love linux!Hello World!Shell is worthy to been studiedここでは改行記号のエスケープ文字を使用します注意:ここでは-sで余分な改行記号を削除し、-dを使用すると、すべての改行記号$cat testを削除します.txt | tr -s '[]' I love linux!Hello World!Shell is worthy to been studied
指定した文字を削除
$ cat test.txt
Monday 09:00
Tuesday 09:10
Wednesday 10:11
Thursday 11:30
Friday 08:00
Saturday 07:40
Sunday 10:00
#処理週外のすべての文字を削除します
#-dは削除を表し、[0-9]はすべての数字を表し、
[:]は、コロンとスペースを表します.
$ cat test.txt | tr -d "[0-9][: ]"
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
-cによる補完の置換
#テキストに保存する文字がいくつかしか分からない場合があります.他の文字は種類が多く、補完セットの置換を使用できます.
$ cat test.txt
Monday 09:00
Tuesday 09:10
Wednesday 10:11
Thursday 11:30
Friday 08:00
Saturday 07:40
Sunday 10:00
私たちは1週間しかかかりません.アルファベット以外はすべて置き換えます.
#ここで、-c:アルファベット以外のすべての文字を改行で置き換えます.-s:余分な改行を削除
cat test.txt|tr -cs "[a-z][A-Z]"""
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday