Unixのコマンドで「これは使える」と思ったオプション、Tipsをメモ

オプション

計算

  • 合計値の算出(例:2列目の値の合計値)
    $ cut -f2 data.txt | tr "\n" + | sed -e "s/+$/\n/g" | bc

日付

  • unixtime > 日付
    $ echo 1258516926 | awk '{print strftime("%Y-%m-%d %H:%M:%S",$1)}'
    2009-11-18 13:02:06
  • ○日前
    date -d '3 days ago'
  • ○日後
    date -d '3 days'
  • ○ヶ月×日後
    date --date '3 months 1 day'
  • YYYY/MM/DD の○日後
    date -d 'YYYY/MM/DD 3 days'

tar

  • -O ... 展開データを標準出力

unzip

  • 複数のファイルを展開する場合は以下のように '' で囲む
    $ unzip '*.zip' 

sort

  • -m ... 複数のファイルをまとめてソートしてマージ
  • -k POS1[,POS2] ... ソートで使うフィールドを指定
  • 例:
    • 対象データ
      $ cat sortText.txt
      111     bbb     111
      222     aaa     9
      333     ccc     55
      444     aaa     33
  • 2列目で昇順
    $ sort -k 2,2 sortText.txt
    222     aaa     9
    444     aaa     33
    111     bbb     111
    333     ccc     55
  • 3列目で降順に数値ソート
    $ sort -k 3,3nr sortText.txt
    111     bbb     111
    333     ccc     55
    444     aaa     33
    222     aaa     9
  • 2列目で昇順 & 3列目で降順に数値ソート
    $ sort -k2,2 -k3,3nr sortTest.txt
    444     aaa     33
    222     aaa     9
    111     bbb     111
    333     ccc     55

uniq

  • -c ... 項目毎の件数を表示
    sort data.txt | uniq -c

cut & awk

  • hoge.txtの2,5,6,9,10,11列だけ抜き出し、並び順を9,2,10,11,5,6列にして出力
    cut -f2,5,6,9,10,11 hoge.txt | awk '{ print $4"\t"$1"\t"$5"\t"$6"\t"$2"\t"$3 }'

grep

  • 複数項目を除外
    $ grep -v -e [keyword1] -e [keyword2] ... 
  • 特殊文字をただの文字として扱って検索
    $ grep -F "aaa|bbb|*" src.txt

find

  • 検索結果に対するコマンドの実行(1)
    find . -type f -print0 | xargs -0 [コマンド]

文字コード

文字コード変換

for i in `ls *.txt`; do iconv -c -f utf-8 -t ms932 $i -o ms932/$i; mv $i utf-8/; done
find . -name "*.txt" -exec iconv -f utf-8 -t ms932 {} -o {}.new \; 

改行コードの補正(CRの除去)

tr -d '\r' < hoge.bk > hoge.sh

「: bad interpreter: そのようなファイルやディレクトリはありません」のエラーが出たときに試してみる。

lftp

  • コマンドラインで使用するFTPクライアント
  • ほとんどのLinuxディストリビューションには標準で入っている
  • 数多くのプロトコルに対応(FTP,HTTP,HTTPS,SFTP, ...)
  • ミラーリング,コマンドライン上での補完・編集,ブックマーク機能などが備わっており,高機能

ブックマークの活用

  • パスワードもブックマークに保存するように設定
    $ echo 'set bmk:save-passwords 1' > ~/.lftprc
  • ログインしてブックマークに登録
    $ lftp sftp://[user]@[server]
    パスワード: [パスワード]
    lftp [user]@[server]:~> bookmark add [ブックマーク名]
    lftp [user]@[server]:~> quit
  • ブックマークを使ってログイン
    $ lftp [ブックマーク名]

ミラーリング

  • ダウンロード : mirror
  • アップロード : mirror -R

実行例(リモートにある新しいファイルのみダウンロード)

$ lftp -c "open example.com && user USERNAME PASSWORD && mirror --only-newer /from_dir /to_dir"

sftp


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-05-26 (木) 15:47:42 (700d)