#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]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS