Linux などでは一般ユーザー用コマンドとして扱われているような気がしますが。 GNU unlink のドキュメントによると、一部のシステムでは unlink コマンドはディレクトリを削除することが出来ます。別のシステムでは特権ユーザーでなければ unlink コマンドを実行することは出来ません。GNU 版はディレクトリを削除することありません。 On some systems unlink can be used to delete the name of a directory. On others, it can be used that way only by a privileged user. In the GNU system unlink can never delete the name of a directory. rm を使ったほうが安全 Solaris は rm
Helpful background for code reading The GNU coreutils has its foibles. Many of these utilities are approaching 30 years old and include revisions by many people over the years. Here are some things to keep in mind when reading the code: Tiny programs - These utilities are small, (mostly) single-source file programs designed to do one thing and do it well. They are not designed for long life or to
unixtimeから日時表記の文字列に変換するには、 -d オプションの引数として @ + unixtime の形式で文字列を指定します。 $ date -d @1557961216 木 5 16 08:00:16 JST 2019 $ date -d @1557961216 +"%Y-%m-%d %H:%M:%S" 2019-05-15 23:00:16 -d オプションに渡す文字列として、数字の前に @ を付けると、 UNIX時間での指定になる。 現在日時から算出 $ date +%s 1557961791指定した日時から算出 $ date -d "1979-09-30 12:34:56" +%s 307542896余談:unixtimeの始まりの値と戯れる余談ですが、 unixtimeは「1970-01-01 00:00:00」から始まります。 UNIXエポック、 すなわち協定世界時
sedは読み込んだ行の行末にある改行を削除してパターンスペースと呼ばれるバッファに格納したうえでテキスト処理をし、最後にパターンスペースの内容に改行をつけて出力する。。 だから改行を含む文字列にマッチさせる指定が非常にややこしい。 sedで改行を含む複数行を指定して一気に置換をやろうと一晩なんやかんややってみたけど、朝になったからあきらめてまったくスマートじゃない別な方法で強引に終わらせた。 :loop N $!b loop s/\n//g 一度ファイル内の改行コードを全削除 そのあとに別スクリプトのsedで複数行じゃなくなったファイル内容を文字列指定で置換して、元通り改行コードを入れる置換する。 改行コードを入れる置換は \の後に実際の改行を入れるでok かなりダサい方法だけど一応出力したい結果は得られるから今はいいことにしておく。 sed と改行 (1) 入力にない改行の出力 入力にな
第1引数のMYFILEはOLDFILEから作成されたファイルで、ファイルのマージを考える場合、OLDFILEとYOURFILEの差分を取り込むファイルとして指定します。 ただし、実際のファイル編集はedコマンド等を使用します。 第2引数のOLDFILEはMYFILEとYOURFILEが作成されたときの元になったファイルを指定します。 第3引数のYOURFILEはOLDFILEから作成されたもう一つのファイルを指定します。 diff3コマンドの例で使用するファイル diff3コマンドを使用する例として、C言語の3つの不完全なプログラムを使用します。1つはプログラムの仮組みの状態のもの、後の2つはその仮組みのプログラムから一部の機能を実装したものになります。以下の3つのプログラムを使用して、diff3コマンドを利用します。 base.cは、後述のmyfile.cとyourfile.cを作成する
filtというツールを作りました github.com これはなに まずは以下のスクリーンキャストをご覧ください tail -F /path/to/access.log のようなログの流れを止めてはgrepをして、止めてはgrepのコマンドを変更してしています。 その間、実は裏では実際のストリームは止めていません。 つまり、ストリームのパイプ先に まずfiltを指定しておく ことで、ストリーム自体は止めずに、パイプ先のコマンドを 後で何度でも 変更できます。 grepやsedやawkが下手なので何度も試行したい 私はgrepやsedやawkなどのコマンドを一発で指定できるほど練度が高くないので、コマンドを組み立てるために何度も Ctrl+C でキャンセルしては再実行の繰り返しをしていました。 最近は stern や Harvest などでKubernetesのPodのログを流すことをもある
joinコマンドの基本 コマンドの基本動作 使い方は、次のとおりだ。 $ join ファイル名1 ファイル名2 ファイルitemname.txtとitemcount.txtを結合する場合は、次のコマンドだ。 $ join itemname.txt itemcount.txt ファイルitemname.txtとitemcount.txtを結合した結果を表示した。 結果は比較する項目において、両方のファイルに存在するもののみを表示する。 また、比較する項目は数値である必要はないが、昇順に並んでいる必要がある。 ファイルitemcount-b.txtには、番号1と3の2行しかない。 このitemcount-b.txtとitemname.txtを次のコマンドで結合する。 $ join itemname.txt itemcount-b.txt ファイルitemname.txtとitemcount-b
はじめに 2015 年末に bash で始める競技プログラミング(?)という記事をネタ半分で書いたのですが、どういうわけか百花繚乱!なないろ言語で競技プログラミングをする資料まとめ(@drken)の中で入門資料に認定されてしまったので、ひとつ釣られたつもりになって AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~にある問題をすべて bash で解きました。実際に解いてみると bash の良い点も悪い点もよくわかるセットだったので、私の解答をひととおり解説しようかと思います。 なお、この記事では、読者と対して以下のことを想定します。 とりあげる問題についてはすべて解法を知っている シェルスクリプトをある程度書くことができる よく使われるコマンド(grep とか sed とか)もわかっている bash の文法については適宜説明を入れますが、必要に
個人的お気に入りツールの一つ。dc。 逆ポーランド記法(RPN)の計算機。 linuxなら大体さいしょっから入ってるツール。 パッケージで言うとbc*1。 プログラミング序論の課題でRPNの話が出たので、ついでだし使い方でもまとめて見ようと思う。 とりあえずRPNがなんだ、ってのは適当にググってくださいな。 あくまでdcの使い方。 計算する とりあえず、計算したいだけなら $ dc 1 # 1をpushする 2 # 2をpushする + # 2,1をpopして、和をpushする p # topを出力する(スタックはいじらない。) 3 q # 終了する(quit) $明示的に出力する様にしないと何も結果を返さないので注意。 負数の扱い マイナス("-")は演算子として定義されているのでそのまま入力はできないらしい。 -1 # -と1として解釈される。のでスタックが空だとエラーになる dc:
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く