コンテンツにスキップ

コマンドメモ

最終更新日: 2021-03-17

xargs

  • ls -l | xargs echo のようにして手前のコマンドの結果を渡すコマンド

複数回渡す

  • 2 回渡す例
    • ls -la ~ | grep .bashrc | xargs echo {}{}
  • 置換文字を {} 以外にする場合は xargs -I@ とする
    • ls -la ~ | grep .bashrc | xargs echo @@

awk

  • 標準出力をパースして標準出力するコマンド
  • 区切り文字で区切った値とか、次の行を取るのには向くが、正規表現をゴリゴリ書くなら perl 使ったほうが楽

特定列を取得

  • 例として ps aux の実行パスの取得
    • ps aux | awk '{print $11}'

区切り文字を変える

  • 標準では半角スペース
  • カンマにする例
    • awk -F ","

正規表現に一致した次の行を取得

  • awk "/any regexp/{getline; print}"

正規表現の捕獲式を捕獲する

  • awk '{print gensub(/Foo: (.+)/, "\\1", "g")}')

sed

  • どうしても sed である必要がなければ perl を使ったほうが楽
    • sed では基本的に PCRE を扱えない
  • perlsed の代わりに使う方法
    • perl -lpe s/hoge/fuga/
  • オプションの意味合い
    • -l 入力からケツ改行を消す
      CLI 入力するとケツに改行が入るのでそれを除去できる
    • -p 入力行を処理する
    • -e スクリプトを流せる php -r のようなもの

cat

  • cat の表示内容は標準出力
  • cat とヒアドキュメントの合わせ技でファイル作成が可能

ファイル作成

1
2
3
4
5
cat <<EOF > foo.txt
foo
bar
baz
EOF
  • 変数展開を防ぐ場合はヒアドキュメントをクオートで囲む
1
2
3
4
5
cat <<'EOF' > foo.txt
foo
bar
baz
EOF

ファイル追記

  • 追記する場合は tee と組み合わせる
1
2
3
4
5
cat <<EOF | tee -a foo.txt
hoge
piyo
fuga
EOF

tar

  • tar --help をするとやたら長い説明が出てきますがテンプレ部分のみ読解

圧縮編

  • tar -zvcf foo.tar.gz foo
1
2
3
4
z: --gzip, gzip
v: --verbose, 詳細、別になくてもいい
c: --create, アーカイブの新規作成
f: --file, 保存するファイル名

tar -cf だと tarball になると思われる

展開編

  • tar -zxvf foo.tar.gz foo
1
2
3
4
z: --gzip, gzip
x: --extract, 展開
v: --verbose, 詳細、別になくてもいい
f: --file, 展開するファイル名