Edo::World::Blog

〜Linux/Solaris関連の作業メモ〜

Linux::コマンド

[Linux] ipcsコマンド

ipcsコマンド
シェアードメモリ、セマフォ、メッセージキューの状態確認を行う


続きを読む

[Linux] grepコマンド

すぐに忘れてしまうので、使用例をメモ

続きを読む

[Linux] 圧縮・解凍

tarコマンド

option 説明
-j  cvfjにてtar.gz2のファイルを作成可能
--exclude  除外ファイルを指定可能
-C  指定ディレクトリに展開


[使用例]

dir1とdir2を除外したアーカイブを作成

tar cvf test.tar . --exclude dir1 --exclude dir2

除外ファイルを指定してアーカイブを作成し、エラーメッセージを別途ファイルに書き出す。

tar czvplf backup.tar.gz . --exclude backup.tar.gz --exclude backup.err 2>backup.err

指定したディレクトリに展開

tar xzvf arc.tar.gz -C /xxx

指定した拡張子を持つファイルのみ展開

tar xzvf arc.tar.gz -C /xxx *.txt

root直下のファイルを取得する場合

$ cd /; pwd
$ tar cvf /media/root.tar ./ --exclude ./sys --exclude ./proc --exclude ./dev --exclude 
 "./media/*" --exclude ./var 

※tarの指定は"."でなく"./"でないと「delayed from previous errors」が発生する。


zipコマンド

[圧縮]

zip <出力ファイル名.zip> <入力対象ファイル名>

カレントディレクトリを再帰的に圧縮

zip ../hoge.zip .

※ディレクトリを対象とする場合は"-r"オプションを付ける

[解凍]

unzip 

[その他]

アーカイブファイルarchive.zipの内容を確認

unzip -l archive.zip

アーカイブarchive.zipから指定ファイルfileAを削除

zip -d archive.zip fileA


compress

[圧縮]

compress -v *.html  #作成ファイルは、「<元ファイル名>.Z」となる。

[解凍]

uncompress <ファイル名>.Z


"tar.bz2"の解凍

bzip2 -dc <ファイル名> | tar xvf -   # UNIX系のtar
tar jxvf <ファイル名>                # LINUX(GNU)系のtar


"gz"の解凍

 $ gunzip <ファイル名>

[Linux] awkメモ

自分がよく使う物をピックアップ。

もっと複雑な処理を行う場合はPerlのワンライナーで書く方が良いと思う。


正規表現とブロック

正規表現でマッチする行を抽出して、必要なカラムのみ表示

$ cat sample.txt 
id   name
----+----------
1    hoge
2    foo         ※fooさんのidを知りたい場合・・・
3    bar

$ awk '/foo$/ {print $1}' sample.txt 
2

第2カラムがhoge、foo、name以外で始まる行を抽出し、カンマ区切りで表示

$ awk '$2 !~ /^hoge|^foo|^name/{print $1","$2}' sample.txt | grep -v '^-'
3,bar


awkで変数を使用する

正規表現の検索条件に変数を指定する場合

  • シングルクォーテーションを一度抜ける方法
$ _man=foo
$ awk '/'${_man}'$/ {print $1}' sample.txt
2
  • シングルクォートからダブルクォートに変更する方法(ただし、print後の$をエスケープする必要)
awk "/${_man}$/ {print \$1}" sample.txt 
2

awk内部の変数として利用する場合

   "-v"オプションを指定宣言

$ free -m
             total       used       free     shared    buffers     cached
Mem:           976        961         15          0         12        748
-/+ buffers/cache:        200        776   ※この行のusedカラムを取って計算
Swap:          999         19        980

※実メモリ使用率を%表記で算出
$ free -m | awk -v _total='976' '/^-\/+/ {print int($3 / _total * 100) }'
20


関数

[int]

  小数点以下切り捨て

list="0.1:5.6:9.22"
echo $list | awk -F\: '{print int($1),int($2), int($3)}'

==実行結果==
0 5 9

[substr]

  文字列の抽出

str="TestMessage"
echo $str | awk '{print substr($1, 1, 4)}'
echo $str | awk '{print substr($1, 2, 5)}'
echo $str | awk '{print substr($1,5)}'

==実行結果==
Test
estMe
Message
プロフィール

edworld

記事検索
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

livedoor 天気
  • ライブドアブログ