シェル・ワンライナー 160 本ノック
Tags: Linux, Shell
まとめ
general
- ファイルの内容を調べる
file some_image.jpg
- 実行時間を計測する
time ワンライナー
- for 文
for(i=1;i<$1;i++)printf(" ")
seq
順番に数値を出力する。
# 昇順
seq 5
# 降順
seq 5 1
sed
- 入力データに置き換え処理を施したうえで再出力する
-n
オプションをつけると、処理対象となった行のみを出力する
置き換え(s///
のパターン)
- 一回だけ置き換える
echo あいうえおあいうえお | sed 's/あ/か/'
# かいうえおあいうえお
- 何回も置き換える(
g
)
echo あいうえおあいうえお | sed 's/あ/か/g'
# かいうえおかいうえお
- 複数の置き換え条件を指定するには
;
で区切る
echo あいうえおあいうえお | sed 's/あ/か/g;s/い/き/g'
# かきうえおかきうえお
- 検索対象の文字を使う(
&
)
echo クロロエチルエーテル | sed 's/エチル/&&/'
# クロロエチルエチルエーテル
- 後方参照(
\1
や\2
など)-E
は拡張正規表現を有効にする-r
でも同じ意味- 無駄にエスケープ文字を入れなくて済むようになる
- 基本正規表現だけ使えればいいなら不要
echo クロロエチルメチルエーテル | sed -E 's/(エチル)(メチル)/\2\1/g'
# 以下のようにもかける
echo クロロエチルメチルエーテル | sed -E 's/(エ..)(...)/\2\1/g'