[Linux][command] テキスト処理_置換・削除_tr, sed

# trコマンド
~~~terminal:
$ tr [オプション] [文字列1 [文字列2]]
~~~

|オプション|由来|説明|
|:--|:--|:--|
|default|translate|- [文字列1]を[文字列2]に置換|
|`-d`|delete|- [文字列1]でマッチした文字列を削除する|
|`-s`|squeeze(絞る)|- 連続するパターン文字列を1つに絞る|

| 文字クラス     | 説明                                         |
|:--------------|:----------------------------------------------|
| `[:alnum:]`   | 英数字（`[:alpha:]` と `[:digit:]` の組み合わせ） |
| `[:alpha:]`   | 英字（大文字・小文字）                         |
| `[:digit:]`   | 数字                                           |
| `[:lower:]`   | 小文字の英字                                   |
| `[:upper:]`   | 大文字の英字                                   |
| `[:space:]`   | 空白文字全般（スペース、タブ、改行など）       |

# sedコマンド
~~~terminal
$ sed [オプション] 編集コマンド [ファイル名]

or

$ sed [オプション] -e 編集コマンド1 [-e 編集コマンド2...] [ファイル名]

or

$ sed [オプション] -f スクリプトファイル [ファイル名]
~~~

| オプション | 由来 | 説明 |
|:--|:--|:--|
| default | stream editor | - 入力ストリームに対して編集コマンドを実行（`sed 's/置換前/置換後/'`など） |
| `-e` | expression | - 複数の編集コマンドを順番に適用可能 |
| `-f` | file | - 編集コマンドを記述したファイルを指定して実行 |


| 編集コマンド | 由来 | 説明 |
|:--|:--|:--|
| `y/文字1/文字2/` | yank | 文字の変換：`a`→`x`、`b`→`y`、`c`→`z` に1文字ずつ変換 |
|  |  | 例：`sed y/abc/xyz/ file.txt` |
| `s/文字列1/文字列2/` | substitute | 文字列の置換：各行の最初の `foo` を `bar` に置換 |
|  |  | 例：`sed s/foo/bar/ file.txt` |
| `s/文字列1/文字列2/g` | substitute (global) | すべての一致を置換：すべての `foo` を `bar` に置換 |
|  |  | 例：`sed s/foo/bar/g file.txt` |
| `/文字列/d` | delete | 一致した行を削除：`foo` にマッチした行を削除 |
|  |  | 例：`sed /foo/d file.txt` |
| `d` | delete | 指定行を削除：<br>2行目を削除<br>1から3行目を削除 |
|  |  | 例：`sed 2d file.txt`<br>例：`sed 1,3d file.txt`|


# Ping-t
tr
- [3136_tr [:lower:] [:upper:], tr a-z A-Z](https://mondai.ping-t.com/question_subjects/31/question_sessions/32311097/progressing_questions/495045356)
- [3137_tr -d](https://mondai.ping-t.com/question_subjects/31/question_sessions/32018863/progressing_questions/490569314)
- [3267_tr -s](https://mondai.ping-t.com/question_subjects/31/question_sessions/31941533/progressing_questions/489430939)
- [3286_tr](https://mondai.ping-t.com/question_subjects/31/question_sessions/30197501/progressing_questions/462632167)
- [3463_tr](https://mondai.ping-t.com/question_subjects/31/question_sessions/31913990/progressing_questions/489024891)
- [3625_tr -d](https://mondai.ping-t.com/question_subjects/31/question_sessions/32244301/progressing_questions/494010591)
- [3628_tr [:alpha:]](https://mondai.ping-t.com/question_subjects/31/question_sessions/31541108/progressing_questions/483298462)
- [3647_tr -s](https://mondai.ping-t.com/question_subjects/31/question_sessions/31870469/progressing_questions/488372706)

sed
- [3504_sed -e s///g, sed s///g](https://mondai.ping-t.com/question_subjects/31/question_sessions/31941533/progressing_questions/489430954)
- [3506_sed //d](https://mondai.ping-t.com/question_subjects/31/question_sessions/32373028/progressing_questions/496001449)
- [3507_sed 1,3d](https://mondai.ping-t.com/question_subjects/31/question_sessions/31943721/progressing_questions/489464088)
- [3509_sed -e s///g -e ///d]()
- [3572_sed -e s///g, sed y/ab/AB/](https://mondai.ping-t.com/question_subjects/31/question_sessions/30890995/progressing_questions/473266333)
- [3688_sed, tr](https://mondai.ping-t.com/question_subjects/31/question_sessions/31069115/progressing_questions/476102905)
- [3707_sed s///](https://mondai.ping-t.com/question_subjects/31/question_sessions/31969785/progressing_questions/489837013)