アカウント名:
パスワード:
#! /usr/local/bin/perluse strict;foreach my $arg ( @ARGV ) { if ($arg =~ /^(.*[^-,\d])?(\d[-,\d]*\d)$/) { my $prefix = $1; my $seq = $2; my ($start) = ($seq =~ /^(\d+)\D/); my $slen = length($start); foreach my $range ( split(/,/, $seq) ) { if ($range =~ /^(\d+)-(\d+)$/) { my $begin = $1; my $end = $2; if ((my $len = length($begin)) < $slen) { $begin = substr($start, 0, $slen-$len).$begin; } $start = $begin; $slen = length($start); if ((my $len = length($end)) < $slen) { $end = substr($start, 0, $slen-$len).$end; } for (my $i = $begin; $i <= $end; $i++) { print "$prefix$i\n"; } $start = $end; $slen = length($start); } else { if ((my $len = length($range)) < $slen) {$range = substr($start, 0, $slen-$len).$range; } print "$prefix$range\n"; $start = $range; $slen = length($start); } } } else { print "$arg\n"; }}
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
yes (スコア:0)
クールじゃないけど、ちょっとお茶目ですよね
wargames
便利ではないなw
Re: (スコア:1)
みたいなコトなら常用しとりますよ。
Re: (スコア:0)
yes '' | sed -e 100q | cat -n
ってやってました。
# そこ、jotとかseqとか言わない
Re:yes (スコア:0)
yes '' | sed -n '1,100{=;};100q'
sed -e 100q 使うぐらいなら、head 使うかなぁ。
# と、どうでもいいところに拘りたくなるなぁ。
Re:yes (スコア:1)
ですね。私も最初のコメントみて第一感が
yes '' | cat -n | head -100
でした(このツリーの人は分かってると思うけど、yesの後は「スペース」と「シングルクウォート」x2です)。でも出力がちょっと違う(用途によっちゃ問題なし)。
Best regards, でぃーすけ
Re: (スコア:0)
新たに作ることもたまにあります。何かいい方法はありませんかね。
しばりは相当変わったシステムでも入っているコマンドのみ。
-------------------------------------------------------------
#! /bin/sh
#
# Usage: mknum culm start_num end_num [step_num]
#
if [ "$3" = "" ]; then
echo Usage: mknum culm start_num end_num [step_num]
exit 1
fi
clum=$1
snum=$2
enum=$3
if [ "$4" = "" ]; then
Re:yes (スコア:1)
Best regards, でぃーすけ
Re:yes (スコア:1)
Re: (スコア:0)
printf なんて当然ありません。
awk は変なシステムじゃなくても機能の差を人間が吸収する必要があるのが辛い。
何処でも使えるとなると相当古い awk の機能しか使えなくなります。
#当然、使えるのは gawk ではありません。
Re: (スコア:0)
$ cat > seq
でしょうか。ヒントだけでも教えてください。
閑話休題
元発言で最初から「しばりは... 」で書いてあるよね。
そういう便利なツールや、開発言語が使えない所での話をしてます。
Re:yes (スコア:1)
増分値は指定できませんが、「頭に固定のプレフィックスを付けられる」「,で区切ったり-で範囲指定ができる」のがウリで、
% rm `myseq /dir/to/file/5678-81,3`
で、/dir/to/file/{5678,5679,5680,5681,5683} を削除とかって使い方をしてます。
これを作る前は
% rm /dir/to/file/56{7[89],8{0,1,3}}
ってやってたので、それほど省力化はされない場合も多いのですが、ともかくミスが減りました。