トップページunix
1002コメント330KB

シェルスクリプト総合 その25©5ch.net

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。 転載ダメ©2ch.net2015/08/14(金) 23:42:01.51
シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
 FreeBSDユーザは/bin/shの正体がashなので注意。
 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。
  http://src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/
  http://heirloom.sourceforge.net/sh.html
・csh/tcshのシェルスクリプトは推奨されません。
 (理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manや参考リンクを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルで使えるワイルドカード等は正規表現ではありません。
 正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆーな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 awkまたはperlの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
□回答者への注意事項:
・シェルスクリプトでの処理方法を質問しているのに、よくわからずに
 「そういうのはperl使いましょう」と回答するのはやめましょう。
 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。
前スレ
シェルスクリプト総合 その24
http://peace.2ch.net/test/read.cgi/unix/1415634843/
0874名無しさん@お腹いっぱい。2017/02/10(金) 09:53:38.19
>>867
並び順は良いだろうけど
A=B B=C A≠C の時そもそもどうなれば良いの?
001 A
001 B
??? C
0875名無しさん@お腹いっぱい。2017/02/10(金) 10:06:02.58
ソートっていうのは同値類とその間の全順序を決めて要素を並べることだよね

>>859のcompareだと推移律を満たさないので同値類になっていない
だからおかしなことになる
0876名無しさん@お腹いっぱい。2017/02/10(金) 10:15:12.36
このように複雑になる場合は要求定義が不適切な事が多い
0877名無しさん@お腹いっぱい。2017/02/10(金) 10:16:20.47
普通に全部出せよ
何で小出しにしてんだよアホじゃねえよ
0878名無しさん@お腹いっぱい。2017/02/10(金) 10:35:17.25
複雑って言うか単純なんだけど特殊なだけでしょ
0879名無しさん@お腹いっぱい。2017/02/10(金) 10:52:33.90
こんなアホソート誰が必要とするんだよwww

ソート前
001 200 200
002 100 100
003 0 0

ソート後
003 0 0 ←一番小さく200との差が100を超えているため入れ替える
001 200 200 ←一番大きいが100からは100以内なので入れ替えない
002 100 100 ←200より小さいが200からは100以内なので入れ替えない

アホだw

コレ意味の分かってないやつがロジック組むと
100から見たら0も200もプラマイ100以内だから
並べ替えしないとか言うことになるだろう

要するにプラマイ100を見込んだ最小値を求めて
2週目のループでそれを除外した中からさらに最小値を求めていくだけ
終わりまで選択ソートをやるだけなんだけど
そこにプラマイ100の比較を追加する必要がある

ぶっちゃけソート結果を見れば分かるように
こいつソートしてんの?って思うだろう
そもそも>>873の考えが破綻していると言うか思いつきソートなんだろうと思う
統計とか学んだ方がいいかな〜
0880名無しさん@お腹いっぱい。2017/02/10(金) 10:59:36.91
ぶっちゃけプログラムを書くのは簡単
0881名無しさん@お腹いっぱい。2017/02/10(金) 11:04:25.90
特殊じゃなくて曖昧なんでしょ
早い話、1000x1000の平面のすべての整数座標に点があったらどうソートしたいわけ?
2次元だからややこしいわけでなく1次元でも同じこと
08828732017/02/10(金) 11:07:21.05
>>879
俺になんの用?
0883名無しさん@お腹いっぱい。2017/02/10(金) 11:15:25.85
>>882
ごめん間違えた>>859

>>881
いや曖昧じゃない
2次元と言うのもちょっと複雑にしてるだけだろう
プラマイ100以内は同じと言う明確な基準がある

ただたぶんこのソートの結果は>>879に記したように
初期のデータの並びによって変わる部分があると思うね
だからこのソートは>>859の思いつきソートだってことだ
0884名無しさん@お腹いっぱい。2017/02/10(金) 11:38:39.44
多分、縦横10000くらいある座標にポツポツしかないと予想した処理なんだろうよ
0885名無しさん@お腹いっぱい。2017/02/10(金) 14:05:33.33
>>883
(0, 100)
(99, 300)
(198, 200)
どう並べりゃ良いのよ?
0886名無しさん@お腹いっぱい。2017/02/10(金) 14:12:56.80
>>885
(0, 202)
(99, 101)
(198, 0)
こうか
08878732017/02/10(金) 14:39:27.08
(0,999)
(0,998)
...
(0,1)
(0,0)

どう並べる?
0888名無しさん@お腹いっぱい。2017/02/10(金) 15:26:37.64
cygwinでスクリプト書いてて時々

bar=`ls foo_*.txt|tail -1|cut -d\. -f1`
で$barに高確率で何も入らなかったり(foo_*.txtはあるのに)

bar=`echo $foo|perl -pE 's/^.*"hoge":"([^"]+)".*$/HOGE_\1/'`
echo $bar > /dev/null
echo "result:"$bar
の2行目がないと何故か3行目で$barが空のように表示されたり

というような現象が起きるんだけど、これってよくあること?
cygwin64にしてから起きているような気もする
0889名無しさん@お腹いっぱい。2017/02/10(金) 15:56:58.38
.
.
東京都三鷹市 元ニコ生主の莉里子です (整形後) http://i.imgur.com/SLcz3dS.jpg (整形前) http://i.imgur.com/zPvxpx5.png
不倫・浮気・密会・不道徳な行為は著名な小説家でしている人がいるので真似しちゃう池沼です http://i.imgur.com/vZeIuO3.png


■2015年2月 釣りニコ生主コジコジと沖縄旅行でオフパコ

2015年2月2日-3日...釣り生主コジコジと沖縄旅行でセックス/やり捨てされ逆ギレ
2015年2月4日.........莉里子の父親から電話があって脅されたとコジコジに放送で暴露される
2015年2月6日.........リスカ画像UP 
2015年2月9日.........ツイ全消し/コミュ爆破逃亡
http://imgur.com/a/58WQC 

■2016年6月 バンドマン兼ニコ生ツイキャス配信者と密会 その3日後に穴るセックス〜継続中
http://imgur.com/a/Lx8o2


●早川莉里子●土井莉里子●土井寧々●土井剛●早川剛●星崎●りりこ●りりこし●にゃんぱす
●ね子●にゃこ●みんち●めう●ねね●猫又●剛


※名古屋ゲイ風俗ホストとも体の関係※
0890名無しさん@お腹いっぱい。2017/02/10(金) 15:57:21.03
.
.
莉里子(本人公表)1994年3月7日 or 1996年4月25日 http://imgur.com/a/oJZpv
生主時代(にゃんぱす、りりこし、莉里子)
剛 http://i.imgur.com/dQxxGuV.png  http://imgur.com/a/gPaof
 

東京都三鷹市 シティハイツ吉祥寺通り
http://i.imgur.com/UmTmbcu.jpg
http://i.imgur.com/cODTuzm.png
http://i.imgur.com/KdyuUod.png
http://imgur.com/a/eeixK (見せたがり乱交好きのメンヘラ) http://i.imgur.com/9V5mmTh.png

http://i.imgur.com/lobby7w.png
http://i.imgur.com/AdewV6O.jpg
http://i.imgur.com/YQaNYBd.png
http://i.imgur.com/pdsCXHG.jpg


莉里子 緊縛ハメ撮り師 『相馬ドリルrenji』 とラブホに2人で入って フルヌード緊縛ハメ撮り
https://pbs.twimg.com/media/CpFjMz0UEAAurD-.jpg  http://i.imgur.com/xaAhkiD.png
https://twitter.com/somadrill/status/761498960028499968
http://imgur.com/a/3dnz5
http://i.imgur.com/SAAZ0fQ.png
0891名無しさん@お腹いっぱい。2017/02/10(金) 15:57:31.97
.
.
.

>悪質パクツイ垢(自称ハッカー)のコピーライティング特定されててワロた

@copy__writing の中の人は東京都三鷹市の莉里子

https://twitter.com/copy__writing
http://i.imgur.com/LyXsDj9.png
http://i.imgur.com/nqT3xBN.png
http://i.imgur.com/2FlhfLE.jpg
https://www.mercari.com/jp/u/446591929/
0892名無しさん@お腹いっぱい。2017/02/10(金) 15:58:37.98
■莉里子プライベート垢
@riricoco0
@bibliophilia333
@muzimuzi333
@nekomatagensou
@hanasoraumimori
@mirainosekai3
@zibanyan666
@parlorchild
@liliririko
@EriotN
@mike_peko
@riricoco0
@ririko_neko
@nyanpas ※1
@telegraphyneko
@riricatputi (新アカ) http://imgur.com/a/X1vQA
0893名無しさん@お腹いっぱい。2017/02/10(金) 22:49:49.54
>>888
再現性はあるの?
手で実行してるのか知らないけど
lsの結果をファイルにリダイレクトしといて(ログ残しておいて)
地道に調べるしかないと思う
0894名無しさん@お腹いっぱい。2017/02/14(火) 09:44:10.27
SJISで漢字を含むCSVファイルを入力として、

while read line
do
なんちゃら
done < CSV

みたいに一行ずつ読み込んでなんちゃらすると、特定の漢字をreadで取った時に文字化けするんだが
これの回避策って兄貴何かないかな
とりあえずIFSを改行のみにしてfor line in `cat CSV`にして凌いだが、IFSいじるのが気持ち悪くて仕方がない
0895名無しさん@お腹いっぱい。2017/02/14(火) 10:11:22.08
なんの漢字?
0896名無しさん@お腹いっぱい。2017/02/14(火) 10:13:38.18
SJISなんてウンコを触っておきながらIFS弄るのが気持ち悪いというのは矛盾
0897名無しさん@お腹いっぱい。2017/02/14(火) 10:35:53.64
>>894
0x5C を含む漢字でしょ、「表」とか
だったら read -r line で
0898名無しさん@お腹いっぱい。2017/02/14(火) 10:44:50.39
>>897
KOREDAAAAA!!!
ありがとう兄貴
ちなみに構造って感じでつまづいてた
SJIS扱うのは古いプロジェクトならよくあることよ
0899名無しさん@お腹いっぱい。2017/02/14(火) 10:54:10.92
そうか2バイト文字の1バイトが&#165;なせいでエスケープ扱いしちゃってたのな…
UTF8とかだと回避出来るんかなこれは
0900名無しさん@お腹いっぱい。2017/02/14(火) 11:54:23.78
んなもん当たり前だろ、としか思えない私はおっさん確定。SJIS死すべしと思っていたのは25年前くらい?
これが世代というものなんですね……
09018942017/02/14(火) 13:40:31.07
25年前からプログラマやってる人と並んだらさすがに俺はクソガキだわ
にしても意外なほどググっても出ないな、それほどマイナーなのかこの症状
もしくは当たり前すぎるのか
0902名無しさん@お腹いっぱい。2017/02/14(火) 15:20:01.03
>>901
sjis ダメ文字でググればごろごろと
09038942017/02/14(火) 15:23:50.72
>>902
sh read 漢字 文字化け とかで出てほしかった…
勉強なったわサンクス
0904名無しさん@お腹いっぱい。2017/02/14(火) 15:40:03.34
sjis 文字化け でも出るで
もう少しやったな
09058942017/02/14(火) 16:05:30.25
あー、出るには出るけど多分readとの関連に気づかなかったろうな…ダメ文字ってものをまず知らなかったし
特定の漢字が文字化けってあたりの記事から推察して、SJISがなんかマズイってとこにはたどり着いたかもしれんが、多分それでもread -rには気づかなかったと思うわ
iconv -t utf8してたと思う
0906名無しさん@お腹いっぱい。2017/02/14(火) 17:11:17.24
>>905
iconv を利用するのはアリだと思うよ。
業務系のシェルスクリプトでも「SJIS データを一時的に UTF-8 にコンバートして何らかの処理をした後に SJIS に戻す」という手法で実装することがある。
09078942017/02/14(火) 17:17:09.33
>>906
便利だよねiconv
0908名無しさん@お腹いっぱい。2017/02/14(火) 20:50:41.08
おれは、使い慣れてるnkfでcp932→utf-8に変換してから作業してるわ。
0909名無しさん@お腹いっぱい。2017/02/15(水) 01:22:16.71
そんで戻ってこない文字が出てきて泣きそうになるまでがテンプレだね。
0910名無しさん@お腹いっぱい。2017/02/15(水) 01:34:33.21
それでもiconvなら
iconvならきっとなんとかしてくれる
0911名無しさん@お腹いっぱい。2017/02/15(水) 04:53:01.40
元がcp932なら変換不能になることはないだろう
そう、iconvならね
0912名無しさん@お腹いっぱい。2017/02/18(土) 04:37:58.77
#!/bin/bash
echo A > test.txt ; echo B >> test.txt
ARRAY=$(cat test.txt)
for item in ${ARRAY[@]}; do
echo $item
done
としたら
A
B
と表示されるので、$ARRAYは 2個の要素を持つ配列になったのだと思っていました。

ところが要素数を
echo ${#ARRAY[@]}
で表示させたら 1 が表示されます。

$ARRAYは配列になっていないのでしょうか?
だとすると、なぜ for item … で表示されたのか?
0913名無しさん@お腹いっぱい。2017/02/18(土) 04:55:39.09
indexも表示させればわかるよ

echo A > test.txt; echo B >> test.txt

ARRAY=$(cat /tmp/test.txt)
for (( i=0; i<${#ARRAY[@]}; i++ )) do
printf "ARRAY index:%d value:%s\n" "$i" "${ARRAY[i]}"
done

readarray -t ARRAY2 < <(cat /tmp/test.txt)
for (( i=0; i<${#ARRAY2[@]}; i++ )) do
printf "ARRAY2 index:%d value:%s\n" "$i" "${ARRAY2[i]}"
done
0914名無しさん@お腹いっぱい。2017/02/18(土) 05:52:55.03
>>913
readarray -t ARRAY < <(cat test.txt)
で綺麗に配列として読まれますね。
これでいま作っている自作ツールが完成出来ます。
ありがとうございます
0915名無しさん@お腹いっぱい。2017/02/18(土) 09:43:20.54
最初の例のやつ、多分配列になってないんじゃないか
0916名無しさん@お腹いっぱい。2017/02/18(土) 14:18:47.86
>>915
#!/bin/bash
echo A > test.txt ; echo B >> test.txt
ARRAY=$(cat test.txt)
N=1
for item in ${ARRAY[@]}; do
echo ARRAY[$N]=$item
N=$(($N + 1))
done

としたら
ARRAY[1]=A
ARRAY[2]=B
と表示されて、配列になっているようです
0917名無しさん@お腹いっぱい。2017/02/18(土) 16:02:36.82
>>916
それは配列になってるんじゃなくてforループで一つ目の要素がsplitされてるだけ
echo A > test.txt ; echo B C >> test.txt みたいにスペースなんかが入ると対処できないからそういうコードはやめたほうがいい
for item in "${ARRAY[@]}"; do ってクウォートすると結果変わるでしょ?

あと”<(cat test.txt)”は比較のために書いただけでcatしなくても大丈夫
readarray -t ARRAY < test.txt

while readするかreadarray(=mapfile)使うか
http://mywiki.wooledge.org/BashFAQ/005#Loading_lines_from_a_file_or_stream
0918名無しさん@お腹いっぱい。2017/02/18(土) 17:07:28.86
>>917
> それは配列になってるんじゃなくてforループで一つ目の要素がsplitされてるだけ
> for item in "${ARRAY[@]}"; do ってクウォートすると結果変わるでしょ?

なるほど。
配列になっていないのと、検証の方法が間違っていたことがよく理解出来ました。

> echo A > test.txt ; echo B C >> test.txt みたいにスペースなんかが入ると対処できないからそういうコードはやめたほうがいい

気を付けます。

> あと”<(cat test.txt)”は比較のために書いただけでcatしなくても大丈夫
> readarray -t ARRAY < test.txt
> while readするかreadarray(=mapfile)使うか
> http://mywiki.wooledge.org/BashFAQ/005#Loading_lines_from_a_file_or_stream

ありがとうございます。
もっと勉強します
0919名無しさん@お腹いっぱい。2017/02/20(月) 13:16:49.47
>>918
[user@f25 ~]$ ARRAY=$(cat test.txt)
[user@f25 ~]$ declare -p ARRAY
declare -- ARRAY="A
B"
[user@f25 ~]$ readarray -t ARRAY < test.txt
[user@f25 ~]$ declare -p ARRAY
declare -a ARRAY='([0]="A" [1]="B")'
0920名無しさん@お腹いっぱい。2017/02/20(月) 18:00:26.41
>>919
declare -p !!!
知らなんだ
0921名無しさん@お腹いっぱい。2017/02/20(月) 18:11:16.14
このスレ来ると度々便利な知識得られるからいいわ
grep -oとか
0922名無しさん@お腹いっぱい。2017/02/21(火) 05:20:06.32
配列にするなら
ARRAY=( $(cat test.txt) )
0923名無しさん@お腹いっぱい。2017/02/21(火) 16:45:06.28
>>922
echo A > test.txt ; echo B C >> test.txt みたいにスペースなんかが入ると…
0924名無しさん@お腹いっぱい。2017/02/21(火) 19:03:20.01
IFS=$'\n'
ARRAY=( $(cat test.txt) )
declare -p ARRAY

とすれば空白混じりの行も1行として扱われるが、
空行(何も文字が無い行)は$ARRAYに読み込まれない

readarray -t ARRAY < test.txt
declare -p ARRAY

だと空行も読み込んでくれる
0925名無しさん@お腹いっぱい。2017/02/28(火) 23:57:54.64
echo test | grep a
みたいな時に終了コードはgrepこの場合1
でかつ標準出力にはtestが出ていて欲しいのですが

どうしたらいいでしょうか?
環境はbashです
0926名無しさん@お腹いっぱい。2017/03/01(水) 00:40:42.45
echo test | tee /dev/tty | grep a

でどうだろう?
0927名無しさん@お腹いっぱい。2017/03/01(水) 00:57:07.01
終了コード1のときにはその文字列を表示したいとかによって違う気がする。
常に入力をそのまま出力していいのだろうか。
0928名無しさん@お腹いっぱい。2017/03/01(水) 01:36:33.88
仕様を細かく詰めてない気がするけど とりあえず
echo test | ( grep -v a; exit $(expr \( "$?" + 1 \) % 2 ))
0929名無しさん@お腹いっぱい。2017/03/01(水) 02:35:11.20
みなさん、ありがとうございます

echo の部分は常に表示、grepは結果のみ欲しいので-qで、判定につかうインプットは常に全量表示して、結果はリターンコード、標準出力は人が見るよう、リターコードはその後のシステム的な分岐につかう的な目的です(後続はbashの世界でないのでワンライナーが嬉しい)
0930名無しさん@お腹いっぱい。2017/03/01(水) 05:09:32.29
macのsipsコマンドについて質問しても大丈夫ですか?
例えば-zと-sを一緒に実行して--out でフォルダに書き出したいとして
どういうルールで並べて記述すればいいでしょうか?

sips -Z 200 * -s format jpeg --out Converted/
あれこれいじって、たまたまこれで動いたのですが
正しいのかわかりません。
よろしくお願いします。スレチだったらすいません。
0931名無しさん@お腹いっぱい。2017/03/01(水) 09:20:45.49
>>929
grep にこだわらくても良くて、GNU sed を使ってもいい場合:

$ echo test | sed '/a/!q1'
test
$ echo $?
1
0932名無しさん@お腹いっぱい。2017/03/01(水) 09:22:21.87
>>930
正しいけどスレチ
man見ろ
見られないんなら
https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/sips.1.html
0933名無しさん@お腹いっぱい。2017/03/01(水) 09:41:41.92
要求満たしつつ個人的に好きなのは>>926
0934名無しさん@お腹いっぱい。2017/03/01(水) 09:50:14.78
「標準出力」じゃないから要求満たしてないんじゃない?
0935名無しさん@お腹いっぱい。2017/03/01(水) 10:04:09.41
>>930
そういえばこういうスレもあったり
【Macintosh】MacでUNIX【Terminal】
http://echo.2ch.net/test/read.cgi/unix/1123501408/

mac板でよかった気もするけど
OS XをUnixとして使ってる人の為のスレ 18
http://potato.2ch.net/test/read.cgi/mac/1462475819/
0936名無しさん@お腹いっぱい。2017/03/01(水) 10:17:52.51
>>931
あ、間違えた…こうしないと

$ echo test | sed -n 'p;/a/H;${x;/./q0;q1}'
0937名無しさん@お腹いっぱい。2017/03/01(水) 12:19:32.48
echo test | awk '/a/{x=1}//END{exit !x}'
0938名無しさん@お腹いっぱい。2017/03/01(水) 17:16:16.75
$ echo test | awk '/a/{x=1}{print}END{exit !x}'

じゃないの?
0939名無しさん@お腹いっぱい。2017/03/01(水) 17:36:55.41
$ echo test | grep -B10000 -A10000 a
0940名無しさん@お腹いっぱい。2017/03/01(水) 17:38:08.89
あああ、1行もマッチしないとダメだ
0941名無しさん@お腹いっぱい。2017/03/01(水) 21:54:56.86
>>932 >>935
スレチにもかかわらずありがとうございました!
0942名無しさん@お腹いっぱい。2017/03/04(土) 09:13:31.42
>>930
うちでもよく使うが、sips なんて他には無いからな

for i *.jpg; do sips -Z 200 $i -s format jpeg --out Converted/$i; done

ところでマカーな人はbash4入れてるんですかね。bash3なので、最近ココで出てくるreadarrayが使えない
0943名無しさん@お腹いっぱい。2017/03/04(土) 09:17:20.48
あー in が抜けてる
for i in *.jpg ; do な
0944名無しさん@お腹いっぱい。2017/03/04(土) 10:32:40.92
ImageMagickのconvertみたいなものか
0945名無しさん@お腹いっぱい。2017/03/04(土) 18:32:17.60
>>942
>ところでマカーな人はbash4入れてるんですかね。

Homebrewで入れてそっち使うようにしてる
0946名無しさん@お腹いっぱい。2017/03/07(火) 19:02:41.56
いつもシェルが使える環境ある?
自分は仕事ならcygwin(今は使ってない)、実機、仮想環境
プライベートならラズパイ、仮想環境かな
0947名無しさん@お腹いっぱい。2017/03/07(火) 22:43:56.07
Mac
0948名無しさん@お腹いっぱい。2017/03/07(火) 23:30:24.96
俺はスマホにzsh入れてるけど
0949名無しさん@お腹いっぱい。2017/03/08(水) 01:50:34.93
>>946
SL-Zaurus(SL-C860)を今だに現役で使っているよ
0950名無しさん@お腹いっぱい。2017/03/09(木) 02:31:23.57
そういうのって
ただ書けるだけじゃなくて動かせたり
実際にその機械で便利に使えたりするのですか?
0951名無しさん@お腹いっぱい。2017/03/09(木) 17:50:34.83
pythonの出力をシェルの変数にするにはどうやれできますか?

x=$( python test.py )
はダメでした
0952名無しさん@お腹いっぱい。2017/03/09(木) 17:58:17.55
$ cat test.py
print("Hello world!")
$ python test.py
Hello world!
$ x=$(python test.py)
$ echo $x
Hello world!
0953名無しさん@お腹いっぱい。2017/03/10(金) 09:16:11.80
あれ?そうだよなと思ったら、pythonの文字コードの扱いが変でした
シェルごめんよ
0954名無しさん@お腹いっぱい。2017/03/10(金) 13:07:41.33
pythonのせいにするのもどうかと
0955名無しさん@お腹いっぱい。2017/03/10(金) 16:08:16.57
pythonは文字コード周り落とし穴が多いすぎ
pythonのせい
0956名無しさん@お腹いっぱい。2017/03/11(土) 22:32:29.75
$@から$1を除いたものを関数に渡す方法を教えてくだしあ
0957名無しさん@お腹いっぱい。2017/03/11(土) 22:46:42.79
shiftするしかないんじゃないかな
呼出し後に元に戻したいとするとsetかな
0958名無しさん@お腹いっぱい。2017/03/11(土) 23:06:24.73
呼び出し先でshiftすりゃいいじゃん
0959名無しさん@お腹いっぱい。2017/03/12(日) 00:12:25.14
せやな!
0960名無しさん@お腹いっぱい。2017/03/12(日) 01:47:16.95
>>956
bash なら "${@:2}" でええんちゃう
0961名無しさん@お腹いっぱい。2017/03/12(日) 04:14:35.39
>>960
その発想もなかった
パラメータとして渡すならこっちの方が分かりやすいな
0962名無しさん@お腹いっぱい。2017/03/12(日) 19:17:36.56
ずっと、行の抜き出しはprcegrepを使ってたげど
sed -n -e '/hoge1/,/hoge2/p'
これでできるのを、今知って感動中。しかも、こっちの方が速い。
そのあとの置換は
sed -n -e '/hoge1/,/hoge2/p' | sed -e 's/foo/bar/g'
としかできなかったけど
sed -n -e '/hoge1/,/hoge2/p' -e 's/foo/bar/g'
で、やる方法とかであるんですか?
0963名無しさん@お腹いっぱい。2017/03/12(日) 20:09:10.06
sed -n -e 's/foo/bar/g' -e '/hoge1/,/hoge2/p'
じゃだめなの?
0964名無しさん@お腹いっぱい。2017/03/12(日) 20:49:35.74
sed -ne '/hoge1/,/hoge2/{s/foo/bar/g;p;}'
でもいけそう
0965名無しさん@お腹いっぱい。2017/03/13(月) 15:22:55.40
sedスレあるのに忘れられてそうw
0966名無しさん@お腹いっぱい。2017/03/13(月) 17:19:42.05
sed -e '/hoge1/,/hoge2/!d' -e 's/foo/bar/g'
0967名無しさん@お腹いっぱい。2017/03/13(月) 19:49:20.42
ありがとうございます
さらに速くなりました

一番最後の文字はコマンドというのを実感
0968名無しさん@お腹いっぱい。2017/03/13(月) 20:38:32.02
sedは-n使ったら負け
0969名無しさん@お腹いっぱい。2017/03/15(水) 13:36:43.93
なんで?
0970名無しさん@お腹いっぱい。2017/03/15(水) 13:37:42.13
うるさい!
俺が負けだって言ったら負けなんだよ
大人しく言う事聞け
0971名無しさん@お腹いっぱい。2017/03/15(水) 13:43:38.36
なんだそのダメな親みたいな言い分は
0972名無しさん@お腹いっぱい。2017/03/15(水) 13:45:42.22
むしろジャイアンかな
0973名無しさん@お腹いっぱい。2017/03/15(水) 16:27:57.38
pでプリントした行は元質問にもあるようにストリームを流れて行かない、
お漏らししたようなものだからね
レス数が950を超えています。1000を超えると書き込みができなくなります。