![]() |
|||||||||
![]() |
![]() |
CommandLine の変更点
#author("2018-06-14T04:02:15+00:00","default:pentacle","pentacle")
* shutdown [#zc84b1e5]
** 再起動 [#x657b376]
reboot
あるいは
shutdown -r now
** シャットダウン [#a300152b]
shutdown -h now
効かない場合
echo s > /proc/sysrq-trigger
echo u > /proc/sysrq-trigger
echo b > /proc/sysrq-trigger
* sed [#n0c5d564]
文字列の置換。 tr は同じ長さしか置換できないがこれは長さが違ってもできる
sed "s/http/https/" input.txt > output.txt
* xargs [#r48f74fd]
リターンで羅列された文字列をスペースで連結してシェルに渡せるように
input.txt
http://aaa.com/
http://bbb.com/
http://ccc.com/
cat input.txt |xargs wget
wget http://aaa.com http://bbb.com http://ccc.com
と等価になる。
~
ちなみに引数を再帰的に実行しないコマンドに渡す場合は
xargs -n1 command
とすると1引数ごとに1回コマンドが発行される
find -name "*.csv" | xargs -I{} sh -c 'cat {} > {}.2'
とすると {} の部分が入力ファイル名に変換される
* xxd [#be05c736]
16進数 <-> binary 相互変換を行う
ダンプ
$ xxd -g 1 binaryfile
復帰
$ echo 'aabb' | xxd -r -p
* find [#g27604f3]
そのディレクトリ以下の ごみファイルを全消し
find -name '*~' |xargs rm
* cut [#r4854bdf]
" で区切られた文字列の2番目を取り出す
cut -d '"' -f 2
* ファイル中の特定文字列を一括変換 [#v8fa2f64]
# find . -name '*.txt' | xargs grep -l '[regexp]' | xargs sed -i.bak 's/[regexp]/[replacement]/g'
* バイトカット [#k11a8220]
head コマンドのバイナリ版
dd if=inputfile of=outputfile bs=1 skip=6 [count=5]
5バイト目から 6バイト
* 標準エラー出力 [#fb6f4c01]
make 2>&1 |less
make のエラー出力を less で確認
* mke2fs [#pf44b747]
format コマンドのようなもん
mke2fs -j /dev/hdb1
* xml をパース [#w0cd5711]
<?xml version="1.0" encoding="utf-8"?>
<data>
<timestamp>1278479900154</timestamp>
</data>
xpath hoge.xml "//data/timestamp/text()" 2>/dev/nulll
※ stderr にゴミがつくので捨てる
* date [#eb04a639]
*** formatting [#q693bd7e]
date +'%Y%m%d-%H%M'
*** unixtime => string [#dda5c81e]
date -d @1278479900
*** str => unixtime [#qe578ec9]
date --date '20100729 19:11' +'%s'
*** csv 中の date -> unixtime変換 [#p4563b88]
cat hoge.csv | sed -r "s|(.{4})/(.{2})/(.{2}) (.{2}):(.{2}):(.{2})|\1 \2 \3 \4 \5 \6|" |awk -F, '{FS=","; OFS=","} {print $1,mktime($2),$3;}'
$1,$3 の数はお好みで
*** csv 中の unixtime -> date 変換 [#k2cf9208]
awk -F, '{print strftime("%Y/%m/%d %H:%M:%S",$3);}' file.csv
* xml中の timestamp をパースして date で見てみる例 [#g07bf1a8]
(echo -n @; echo `xpath data.xml "//data/timestamp/text()" 2>/dev/null` / 1000 | bc ) |xargs date +'%Y/%m/%d %H:%M:%S' -d
|
|||||||