#author("2022-05-26T06:47:42+00:00","default:admin","admin") Unixのコマンドで「これは使える」と思ったオプション、Tipsをメモ -[[UNIX & Linux コマンド・シェルスクリプト リファレンス:http://www.geocities.jp/geo_sunisland/index.html]] --[[フィルタを使用した文字列操作 1:http://www.geocities.jp/geo_sunisland/filter_sed.html]] --[[フィルタを使用した文字列操作 2:http://www.geocities.jp/geo_sunisland/filter_etc.html]] * オプション [#z9b02f12] -[[getopts - コマンド "getopt", "getopts" の使い方を把握する:http://d.hatena.ne.jp/taiyo/20080211/p1]] * 計算 [#yf2be36d] -合計値の算出(例:2列目の値の合計値) $ cut -f2 data.txt | tr "\n" + | sed -e "s/+$/\n/g" | bc * 日付 [#q54816ee] -[[unixtime と 日付 の相互変換:http://pooh.gr.jp/?p=82]] --日付 > unixtime $ date +%s --date "2009-11-18 13:02:06" 1258516926 --unixtime > 日付 $ echo 1258516926 | awk '{print strftime("%Y-%m-%d %H:%M:%S",$1)}' 2009-11-18 13:02:06 -日付計算 --[[dateコマンドの便利な使い方(日数計算):http://norian.blog50.fc2.com/blog-entry-77.html]] --○日前 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 [#l617616c] - -O ... 展開データを標準出力 * unzip [#d037c421] -複数のファイルを展開する場合は以下のように '' で囲む $ unzip '*.zip' * sort [#d11bd4ad] - -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 [#w29b47a7] - -c ... 項目毎の件数を表示 sort data.txt | uniq -c * cut & awk [#eacf95e4] -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 [#w7b84522] *grep [#c668b9ed] -[[grepで複数の項目を除外:https://tech.withsin.net/2017/05/08/grep-v-e/]] -複数項目を除外 $ grep -v -e [keyword1] -e [keyword2] ... -特殊文字をただの文字として扱って検索 $ grep -F "aaa|bbb|*" src.txt * find [#e1b4a23e] -[[ファイル・ディレクトリ名の一括置換/一括作成業務で楽するためのUNIXテクニック集:http://codezine.jp/article/detail/2954?p=3]] -[[find/grep/xargsコマンドを使いこなす 業務で楽するためのUNIXテクニック集「検索」編:http://codezine.jp/article/detail/3279?p=2]] --[[検索結果に対するコマンドの実行(find -exec/xargsコマンド):http://codezine.jp/article/detail/3279?p=3]] -[[find & xargs:http://www.infoanda.com/resources/find.htm]] -検索結果に対するコマンドの実行(1) find . -type f -print0 | xargs -0 [コマンド] * 文字コード [#q49e4fa9] ** 文字コード変換 [#kba7bfa7] 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の除去) [#ba77ebcd] tr -d '\r' < hoge.bk > hoge.sh 「: bad interpreter: そのようなファイルやディレクトリはありません」のエラーが出たときに試してみる。 * lftp [#a210b70b] -[[公式サイト:http://lftp.yar.ru/]] --[[man lftp:http://lftp.yar.ru/lftp-man.html]] -コマンドラインで使用するFTPクライアント -ほとんどのLinuxディストリビューションには標準で入っている -数多くのプロトコルに対応(FTP,HTTP,HTTPS,SFTP, ...) -ミラーリング,コマンドライン上での補完・編集,ブックマーク機能などが備わっており,高機能 -[[lftp - [物理のかぎしっぽ]:http://hooktail.org/computer/index.php?lftp]] -[[lftp を使った ftp ミラーリングと便利機能:http://sonic64.com/2004-05-08.html]] -[[lftpを使おう:http://mizzy.org/linux/lftp.html]] -[[lftpで行う手軽なバックアップ:http://www.itmedia.co.jp/enterprise/articles/0804/25/news014.html]] ** ブックマークの活用 [#d2809f5d] -パスワードもブックマークに保存するように設定 $ echo 'set bmk:save-passwords 1' > ~/.lftprc -ログインしてブックマークに登録 $ lftp sftp://[user]@[server] パスワード: [パスワード] lftp [user]@[server]:~> bookmark add [ブックマーク名] lftp [user]@[server]:~> quit -ブックマークを使ってログイン $ lftp [ブックマーク名] ** ミラーリング [#k25bbf49] -ダウンロード : mirror -アップロード : mirror -R 実行例(リモートにある新しいファイルのみダウンロード) $ lftp -c "open example.com && user USERNAME PASSWORD && mirror --only-newer /from_dir /to_dir" * sftp [#ze62b78a] -[[sftpによる対話的なファイル転送:http://ssh-secure.net/basic/sftp.html]]