Linuxサーバー構築4（テキスト処理）

<h5>1.パイプとリダイレクト

パイプ（パイプライン）とは「｜」の記号

使い方
ls | wc -l入力→結果：カレントディレクトリ内のファイル、ディレクトリ数が出力される（今回は１１）
![WS000000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/da8e11fb-5905-02aa-d112-1353dbb26434.jpeg)

リダイレクトとは

使い方
ls > redirect.txt入力→結果：viエディタ内にls情報が出力されている
![WS000001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/ca17372c-ef24-4506-c445-1de7a2a3b30e.jpeg)

<h5>2.ファイル内容を出力（catコマンド）

コマンド　cat ファイル名 [オプション]

[オプション一覧]
-n	各行の先頭に行番号をつけて出力する

使い方
cat vitext.txt -n入力→結果：vitext.txt内の情報がコマンド上に表示される
![WS000002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/b1d74f9a-490a-cc5c-03f8-b8935105ca45.jpeg)

<h5>3.行番号をつけてファイルを出力（nlコマンド）

コマンド　nl　[オプション]　[形式]　ファイル名

[オプション一覧]
-b 形式	指定した形式で行頭に行番号をつける

[形式一覧]
a	全ての行に表示する
t	空白行以外に表示する
n	行番号を付けるのを中止する

使い方
nl -b a vitext.txt入力→結果：先頭行に行番号がついた状態で、vitext.txtの内容が出力される
![WS000003.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/ebc60867-bdca-0f8a-486b-9f3e5ada205f.jpeg)

<h5>4.ファイルを1ページずつ出力する（lessコマンド）

コマンド　less ファイル名

[キー操作一覧]
k、矢印上（↑）	上方向に一行スクロール
j、矢印下（↓）	下方向に一行スクロール
f、スペース	下方向に1画面分スクロール
b	上方向に1画面分スクロール
q	終了
/検索文字列	下方向に指定文字列を検索
?検索文字列	上方向に指定文字列を検索
h	ヘルプ表示

使い方
less　/var/log/boot.log入力→結果：ログ内容が大量に表示されるので上記キー操作で操作する
![WS000004.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/aede98cb-e830-88de-033a-9625f4c6ebc7.jpeg)

<h5>5.ファイルの先頭部分を出力する（headコマンド）

コマンド　head [オプション] ファイル名

[オプション一覧]
-n 行数	ファイルの先頭から指定した行数分出力する
-c バイト数	ファイルの先頭から指定したバイト数分出力する

使い方
大量のテキストを記憶したテキストファイルを先頭から指定した分量の出力を行う場合にはheadコマンドを使用する

head -n 15 /var/log/boot.log入力→結果：boot.logの先頭から15行出力される
![WS000005.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/ad8aef4c-b250-4a18-d804-a6f1fa4abbf8.jpeg)
※同様に末尾から指定した分量を出力する場合はtaillコマンドを使用する

<h5>6.ファイルの指定箇所を出力する（cutコマンド）

コマンド　cut [オプション] ファイル名

[オプション一覧]
-c 文字数	取り出す文字位置を指定する
-d 区切り文字	区切り文字（デリミタ）を指定する（デフォルトはtab）
-f フィールド	取り出すフィールドを指定する

使い方
テキストファイルの指定した箇所の出力を行う場合にはcutコマンドを使用する

cut -c 3 vitext.txt入力→結果：3文字目だけ出力される
cut -c 2-5 vitext.txt入力→結果：2文字目から5文字目までの範囲出力される
![WS000000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/544a6a21-6e6b-bc89-27ad-7e6016fd4a23.jpeg)

<h5>7.二つのファイルを連結する（pasteコマンド）

コマンド　paste [オプション] ファイル名１　ファイル名２

[オプション一覧]
-d 区切り文字	連結する際の区切り記号（デリミタ）を指定する（デフォルトはタブ）

使い方
二つのファイルを読み込み、連結を行う場合にはpasteコマンドを使用する
paste -d":" sample1.txt sample2.txt入力→結果：二つのファイル内容が「：」を挟んで連結される
![WS000000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/ed5df24d-5c8a-09a7-cb25-b112420a7033.jpeg)

<h5>7.指定の文字を変換・削除する（trコマンド）

コマンド　tr　[オプション]　文字列1　[文字列2]

[オプション一覧]
-d	文字列1でマッチした文字列を削除する
-s	連続するパターン文字列を1文字として処理する

cat　vitext.txt　|　tr　'a-z'　'A-Z'入力→結果：vitext.txt内のアルファベットがすべて大文字に変換された
![WS000001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/f7b3a043-97e9-e268-0182-b0f21f2c7073.jpeg)

trコマンドにはクラスがあり、クラスを使うと指定が簡単になる

[クラス一覧]
[:alpha:]	アルファベット
[:lower:]	アルファベット小文字
[:upper:]	アルファベット大文字
[:digit:]	数字
[:alnum:]	英数字
[:space:]	スペース

[:digit:]を使用して先ほどのvitext.txtから数字だけ消してみる

tr　-d　[:digit:]　<　vitext.txt入力→結果：CENTOS7.7から7だけが削除された
![WS000002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/ba65e562-0f9b-fc43-e59b-6108cf5e3c34.jpeg)

<h5>8.ファイル内を並び替える（sortコマンド）

コマンド　sort　[オプション]　[+開始位置　[-終了位置]]　ファイル名

[オプション一覧]
-b	先頭の空白は無視する
-f	大文字小文字の区別を無視する
-r	降順に並び替える
-n	数字を文字ではなく数値として判断する

使い方
ファイル内を行単位で並び替えるにはsortコマンドを使用する
sort vitext.txt入力→結果：vitext.txt内の昇順に並び替えられて出力された
![WS000003.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/d39514b6-51dd-8eba-6c52-77186780aa42.jpeg)

<h5>9.ファイルを分割して複数のファイルに分ける（splitコマンド）

コマンド　split　[オプション]　分割元ファイル名　[出力ファイル名]

[オプション一覧]
-b バイト数	指定されたバイト数で分割します。数値の後に「k」をつけるとキロバイト単位、「m」をつけるとメガバイト単位になる
-l（小文字のエル）行数	指定した行数で分割する（lは省略することもできる）

使い方
ファイルを指定した行数やバイト数で分割するにはsplitコマンドを使用するs

split -l 3 vitext.txt vitextsplit入力→結果：vitext.txt内のテキストが3行単位で分割されて出力されている
ここから分割されたファイルを結合してみる

cat　vitextsplit*　>　vitext2.txt入力→結果：分割されたファイルの中身が結合されてvitext2.txtに出力された
（分割されたファイルは残ったまま）
![WS000004.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/7316aebc-48e2-323c-557a-c8f829481870.jpeg)

<h5>10.並び替え後のファイルから重複する行を削除する（uniqコマンド）

コマンド　uniq　[オプション]　入力ファイル名　出力ファイル名

[オプション一覧]
-d	重複している行のみ出力する
-u	重複していない行のみ出力する

使い方
sortコマンドを使って並び替えた後に、重複する行があるかどうかを調べて重複する行があればそれを削除するためにはuniqコマンドを使用する

sort uniq.txt | uniq入力→結果：重複のある部分が削除された状態で出力される
![WS000005.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/988b7047-b374-5461-8b47-2e1fc4670e13.jpeg)

<h5>11.ファイルの大きさを調べる（wcコマンド）

コマンド　wc　[オプション]　ファイル名

[オプション一覧]
-c	文字数（バイト数）を出力する
-l（小文字のエル）	行数を表示する
-w	単語数を表示する

使い方
ファイルの各種サイズを出力するにはwc（Word　Count）コマンドを使用する

wc -c vitext.txt入力→結果：60バイトと表示される
![WS000006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847607/9793f8c7-d875-ce57-323b-7add230bc5df.jpeg)