[過去ログ] プログラミングのお題スレ Part16 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
693: 2020/01/25(土)08:11 ID:O6wUvbi6(1) AAS
tsort(1) ?
694: 2020/01/25(土)10:35 ID:ZrgQFiPc(1) AAS
>>692
そんなルールはないけれど、制御構造の構文の代わりに安直に
goto分岐を使ったヘッポココードではなくて、perl5のgoto 関数名構文が持つ
continuationの機能を使って、動的環境を維持したまま末尾再帰的な
loopを表現したと言いたかったのよ
695: 2020/01/25(土)10:38 ID:icKJvqvk(1) AAS
なるほど
お前はなかなかやるじゃねえか
696(13): 2020/01/25(土)11:05 ID:mLh1vP4R(1) AAS
お題
.bash_history には、入力したコマンドが、1行ずつ追記されていくが、
同じコマンドが出てくると面倒なので、古い(上にある)方をすべて消してください
入力
5
3
1
4
2
5
省9
697: 2020/01/25(土)11:14 ID:wxh/zNmo(1) AAS
>>696 Ruby
puts gets(p).split.reverse.uniq.reverse
# =>
1
2
3
4
5
698: 2020/01/25(土)12:48 ID:dgvYVRBF(1) AAS
>>696
Java
外部リンク:paiza.io
699: 2020/01/25(土)13:56 ID:yjSryLut(1) AAS
>>696 Perl5
$h{$_} = $. while <>;
print for sort{$h{$a} <=> $h{$b}} keys %h;
実行結果
~ $ cat .bash_history
5
3
1
4
2
省10
700: 2020/01/25(土)18:59 ID:xXb4DuHd(1) AAS
>>696
外部リンク:ideone.com
RのuniqueにはfromLastオプションがあるので、revによる前後処理が不要。
701(1): 2020/01/25(土)19:19 ID:i4ScOGkF(1) AAS
>>696 Ruby
a=STDIN.readlines
puts a.select.with_index{|v,i| i==a.rindex(v)}.join
702(2): 2020/01/25(土)19:26 ID:eYyvJiZZ(1) AAS
>>696 .bashrc
HISTCONTROL=erasedups:ignorespace
ついでに
HISTIGNORE="history*"
703: 2020/01/25(土)20:22 ID:J6xo1Vbp(1) AAS
>>696 Emacs Lisp
(with-temp-buffer-window #1="*odai-pt16-696*" nil nil
(switch-to-buffer #1#)
(insert-file-contents "~/.bash_history")
(delete-duplicate-lines (point-min) (point-max) t))
704(1): 2020/01/26(日)00:01 ID:4S7WZkam(1/4) AAS
>>701 ナイス
705: 2020/01/26(日)00:02 ID:4S7WZkam(2/4) AAS
>>704 アンカーしくった
>>702 ナイスはこっちだた
706(2): 696 2020/01/26(日)00:35 ID:2jcz6vHU(1/7) AAS
>>702
スレ違いで、スマンが、
erasedups で、現在の行と一致する履歴を、保存前にすべて削除するけど、
WSL, Ubuntu 18.04, bash では、削除されなかった!
これは難しい
tmuxとかの仮想端末で複数の画面間で、Bashのコマンド履歴を共有すると、
同じ履歴が何度も記録されてしまう問題を解決する
外部リンク:piro.sa@kura.ne.jp/latest/blosxom/webtech/2018-03-04_history-nodup-with-tmux.htm
707: 2020/01/26(日)01:20 ID:4S7WZkam(3/4) AAS
>>706
モチツケ
708(1): 696 2020/01/26(日)01:39 ID:2jcz6vHU(2/7) AAS
history の仕組みが難しいから、
定期的に、ここのスクリプトで、履歴ファイルを上書きした方が良いかも
709(2): 2020/01/26(日)01:43 ID:HPdacZve(1) AAS
rubyXLでエクセルいじってるが
印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・
710(1): 2020/01/26(日)02:08 ID:4S7WZkam(4/4) AAS
>>709
スレチ
>>708
bashから.bash_profileの重複をなくすプログラムを実行しても
logoutするときにbashが記憶しているコマンド履歴を.bash_profileに
上書きしちゃって、元の木阿弥になるんジャマイカ
711(1): 696 2020/01/26(日)05:19 ID:2jcz6vHU(3/7) AAS
>>710
>>706
のサイトに書いてあるけど、
.bash_history から重複を排除して、上書きする
次に、history -c && history -r
-c で、メモリ上のコマンド履歴を削除して、
-r で、履歴ファイルからメモリへ、コマンド履歴を読み込む
省1
712: 696 2020/01/26(日)06:05 ID:2jcz6vHU(4/7) AAS
>>696
Ruby で作った。
コマンドは「ruby script.rb 入力ファイル名」
# ARGF とは、複数のファイルや標準入力を連結して、1つにした仮想ファイル
ary = ARGF.readlines # 1行ずつ配列に入れる
# ! が付く破壊的メソッドは、メソッドチェーンしない!
ary.reverse!
ary.uniq! # 連続していないものも削除する
ary.reverse! # 元に戻す
print ary.join
上下前次1-新書関写板覧索設栞歴
あと 290 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s