Linux備忘録7:改行コード変換、ブレース展開

タイトル内容をまとめたメモ

 

【改行コードも含めて、ファイル内容表示】

# cat -A [ファイル名]

  Linux:    LF ⇒$
  Mac:   CR ⇒^M
  Windows: CRLF ⇒^M$

 

【改行コード変換】

  Mac -> Unix

# tr \\r \\n <mac.txt >unix.txt

 Windows -> Unix

# tr -d \\r <windows.txt >unix.txt

 Unix -> Windows

# perl -p -e 's/\n/\r\n/' <unix.txt >windows.txt 

 ⇒このパターンはperlを使用

 

 

【ブレース展開】

 bashの機能のひとつ。数字、アルファベットを連番で指定したい場合等に記載を省略化できる。指定した値分、増減して連番指定するといったことも可能。

 

・ただの展開

# echo {a,b,c}
a b c ←出力結果

・単純な連続 (1~100 , a~zの場合)

# {1..100}   {a..z}

  ⇒途中の数字、アルファベットを指定してもok

  ⇒アルファベットは大文字の指定も可。ただし小文字との混在は記号等が含まれたため確認が必要。

 ⇒また逆順での指定も可。例:{100..1}

 ⇒スペース区切りで出力されるため、そのままリスト格納できる。

 

 ・指定した値で増減して連続(インクリメント)

# echo {0..100..5}

0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 ←出力結果

※アルファベットも出来たが、利用方法が思いつかない。

 

・連番の前後に文字(数字)を入れる

 前

# echo test{1..5}
test1 test2 test3 test4 test5

 前後も可

# echo te{1..5}st
te1st te2st te3st te4st te5st 

 

# echo 10{1..5}00
10100 10200 10300 10400 10500

 数学式的な展開

 # echo {a,b}{c,d}
ac ad bc bd

 

 # echo {a,b}{c,d}{f,g}
acf acg adf adg bcf bcg bdf bdg

 

 ・カンマを使用して特定文字を単体出力させ、連番展開

# echo a{,a,b}
a aa ab 

 ⇒カンマの位置で出力結果{a} の位置が変わる

 

・複数条件を入れ子を使用して指定してみる

 # echo a{,{1..5}}
a a1 a2 a3 a4 a5

  ⇒細かい内容は分が長くなるため割愛。ログ取得に活用できそう。※日付指定とか