シェルスクリプト総合 その25©5ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。 転載ダメ©2ch.net
2015/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/
0007名無しさん@お腹いっぱい。
2015/08/14(金) 23:57:59.641. sed
http://peace.2ch.net/test/read.cgi/unix/1085730992/
2. 正規表現
http://peace.2ch.net/test/read.cgi/unix/1039165754/
3. Regular Expression(正規表現) Part13
http://peace.2ch.net/test/read.cgi/tech/1415149975/
4.Perlについての質問箱 64箱目 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1417291896/
5. ECMAScript デス 4
http://peace.2ch.net/test/read.cgi/tech/1325448978/
6. Ruby 初心者スレッド Part 57©2ch.net [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1426165733/
7. Pythonのお勉強 Part50
http://peace.2ch.net/test/read.cgi/tech/1413474092/
8. 【node.js】サーバサイドjavascript 3【io.js】(c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1419673207/
□I. 現在評価待ち: X.n は予定した追加先。主にスレ立て人の判断保留用。
0008名無しさん@お腹いっぱい。
2015/08/15(土) 00:04:34.32漏れや要求があれば各自追記願います。
0009名無しさん@お腹いっぱい。
2015/08/15(土) 03:33:33.310010名無しさん@お腹いっぱい。
2015/08/15(土) 13:42:11.470011名無しさん@お腹いっぱい。
2015/08/15(土) 14:41:40.480012名無しさん@お腹いっぱい。
2015/08/15(土) 17:47:20.990013名無しさん@お腹いっぱい。
2015/08/16(日) 00:14:04.650014名無しさん@お腹いっぱい。
2015/08/16(日) 21:47:33.05例えば95行のテキストファイルを10分割するとき、
splitだと10行のファイルが9個と5行のファイルが1個できますが
そういう分割ではなく、10行のファイルを5個、9行のファイルを5個、
というように、等分に近くなるように分割したいです
今はforループで、1行目はファイル1に、2行目はファイル2に、
途中略して10行目はファイル10に、そして11行目はファイル1に、
みたいに仕分けてるのですが、splitの様にファイル先頭からの並び通りに
等分したく思ってます
0015名無しさん@お腹いっぱい。
2015/08/16(日) 22:42:11.520016名無しさん@お腹いっぱい。
2015/08/16(日) 23:56:46.15awk で行番号見ながら出力ファイルを変えれば?
以下は out.0〜9 に出力する例。
動かしてみた感じだと perl で真面目にプログラム書いた方が処理速度的には速そうね。
#!/bin/sh
INFILE="$1"
LINE=$(wc -l < "$INFILE")
SPMOD=$(expr $LINE % 10)
SPDIV=$(expr $LINE / 10)
[ "$SPMOD" != 0 ] && SPDIV=$(expr $SPDIV + 1)
awk "BEGIN{I=0; F=\"out.\"I; DIV=${SPDIV}; B=DIV;}
{print \$0 > F; if(NR == B){I++; if(I==${SPMOD}){DIV--;}
F=\"out.\"I; B+=DIV;}}" "$INFILE"
0017名無しさん@お腹いっぱい。
2015/08/17(月) 00:28:08.28$ split -n l/10 95lines.txt
# 1/10 じゃなくて l/10 ね(line の l)
ただ、こうなる↓
$ wc -l xa?
12 xaa
9 xab
9 xac
9 xad
9 xae
9 xaf
9 xag
9 xah
9 xai
11 xaj
95 合計
0018名無しさん@お腹いっぱい。
2015/08/17(月) 07:22:58.29なるほど
まずは処理内容を勉強して、考えます
>>17
なんか微妙な分け方ですね…
GNU版の採用や、96とか97とかになったらどうなるかとか、調べてみます
0019名無しさん@お腹いっぱい。
2015/08/23(日) 21:52:42.48for file in ${1}/*
do
echo "${file}"
done
上記のコードで
$sh test.sh ~/Desktop/foo
とすると期待通りに
/home/hoge/Desktop/foo/a
/home/hoge/Desktop/foo/b
/home/hoge/Desktop/foo/c
と表示されるのですが
$sh test.sh "~/Desktop/foo"
とダブルクォートでくくると
~/Desktop/foo/*
と表示されてしまいます
でも空白の入ったパスを渡したいときはダブルクォートでくくらないといけませんよね?どうすればいいですか
${1}/*を"${1}/*"としても"${1}"/*としてもうまくいきませんでした
0020名無しさん@お腹いっぱい。
2015/08/23(日) 22:25:01.69チルダがクォートされているかどうかで違う
$ echo ~/Desktop/foo
/home/hoge/Desktop/foo
$ echo "~/Desktop/foo"
~/Desktop/foo
0021名無しさん@お腹いっぱい。
2015/08/23(日) 22:53:07.70$ sh test.sh "${HOME}/Desktop/foo"
002219
2015/08/23(日) 23:32:18.17レスどうもありがとうございます
コード側の問題じゃなくて渡す側の書き方に問題があったんですね
空白を含んでいないパスは期待どおりになりました
が空白を含んでいる場合はやっぱり「*」が展開されずに
$ sh test.sh "/home/hoge/Desktop/foo bar"
または
$ sh test.sh "${HOME}/Desktop/foo bar"
とすると
/home/hoge/Desktop/foo
bar/*
と表示されてしまいます
002319
2015/08/23(日) 23:37:21.98${1}/* と "${1}/*" はだめでしたが "${1}"/* としたらうまくいきました
ダブルクォートって難しいです
0024名無しさん@お腹いっぱい。
2015/08/24(月) 04:09:11.65/home/hoge/Desktop/foo bar/space ship.txt があると
/home/hoge/Desktop/foo bar/space
ship.txt
と2行に渡って表示される
0025名無しさん@お腹いっぱい。
2015/08/25(火) 09:55:00.50$ cat test.sh
#!/bin/sh
for f in "$1"/*
do
echo "$f"
done
$ touch "space ship.txt"
$ sh test.sh .
./space ship.txt
./test.sh
0026名無しさん@お腹いっぱい。
2015/08/25(火) 11:38:42.71対象ディレクトリと対象ディレクトリ内のファイル名の両方にスペースが含まれて
いても問題ない
あと、ソースに渡された引数+"/*"がどう展開されるかの表示を追加
bash-2.05$ cat test.sh
#!/bin/sh
echo -n "arg/* = '"
echo -n "${1}"/*
echo "'"
echo
for file in "${1}"/*
do
echo "${file}"
done
exit 0
002726
2015/08/25(火) 11:40:11.64bash-2.05$ cd "foo bar"
bash-2.05$ touch "space ship.txt"
bash-2.05$ touch space_ship.txt
bash-2.05$ cd ..
bash-2.05$ tree
`-+ .
+-- foo bar
| +-- space ship.txt
| +-- space_ship.txt
+-- test.sh
1 directory 3 files
bash-2.05$ sh test.sh "foo bar"
arg/* = 'foo bar/space ship.txt foo bar/space_ship.txt'
foo bar/space ship.txt
foo bar/space_ship.txt
bash-2.05$
0028名無しさん@お腹いっぱい。
2015/08/25(火) 12:23:17.60>>24 が駄目と言ってるのは ${1} の場合の話だろw
"$1"ならもちろん問題ないよ。
0029名無しさん@お腹いっぱい。
2015/08/25(火) 12:29:22.170030名無しさん@お腹いっぱい。
2015/08/25(火) 12:55:51.30いや…ファイルの話だよね?割りとどうでもいい流れだけど一応
$ cat test.sh
#!/bin/sh
for f in ${1}/*
do
echo "$f"
done
$ ls
space ship.txt test.sh
$ sh test.sh .
./space ship.txt
./test.sh
$
0031名無しさん@お腹いっぱい。
2015/08/25(火) 13:12:03.640032名無しさん@お腹いっぱい。
2015/08/25(火) 13:14:16.88その場合、 ${1} に . が代入されるから問題が起きてないだけ。
${1} とか半端な記述せずに "$1"にすること。${1}ってクォートなしの $1 と同じだから。
003326
2015/08/25(火) 13:25:30.87含まれる場合の常套手段で「IFS」を「改行コード」のみに設定すればOK
bash-2.05$ cat test.sh
#!/bin/sh
IFS_BACKUP=$IFS
IFS="
"
echo -n "arg/* = '"
echo -n "${1}"/*
echo "'"
echo
for file in ${1}/*
do
echo "${file}"
done
IFS=$IFS_BACKUP
exit 0
003433
2015/08/25(火) 13:26:35.02bash-2.05$ tree
`-+ .
+-- foo bar
| +-- space ship.txt
| +-- space_ship.txt
+-- test.sh
1 directory 3 files
bash-2.05$ sh test.sh "foo bar"
arg/* = 'foo bar/space ship.txt foo bar/space_ship.txt'
foo bar/space ship.txt
foo bar/space_ship.txt
bash-2.05$
0035名無しさん@お腹いっぱい。
2015/08/25(火) 13:30:12.680036名無しさん@お腹いっぱい。
2015/08/25(火) 13:58:06.490037名無しさん@お腹いっぱい。
2015/08/30(日) 12:52:52.88最近cygwin使ってないんで試してないけど
神が現れてsudo実装してping打てるようになった模様
詳細はcygwinスレ参照
そうそうcygwinのpingって何か違ったんだっけ?
0038名無しさん@お腹いっぱい。
2015/09/06(日) 16:40:59.13標準では全部グローバルのスコープじゃなかったのか?
グローバル変数に引数をコピーするとグローバル変数は参照できるけど
引数はそういうものなのか?
~/ cat bug.sh
function bug_version {
echo "argument $1 can't handle in function"
}
bug_version
echo "argument $1 can handle out of function"
~/ sh bug.sh arg
argument can't handle in function
argument arg can handle out of function
0039名無しさん@お腹いっぱい。
2015/09/06(日) 17:58:01.08> 引数 $1 が function の中から参照できない
> 標準では全部グローバルのスコープじゃなかったのか?
【ポイント】
シェル関数内の位置パラメータと特殊パラメータ「$#」はシェル関数内のみで有効
【説明】
シェル関数の実行には『引数』を付けることができ、シェル関数内の位置パラメ
ータと特殊パラペータ「$#」は、一時的にシェル関数の『引数』とその個数で置
き換えられる。このため、位置パラメーターと特殊パラペータ$#はシェル関数内
のみで有効。
あと、shの場合「function」は使えない、またシェル関数名の後ろに「()」がないと syntax error
$ cat bug.sh【修正版】
bug_version() { ← shの場合「function」は使えない、シェル関数名の後ろに「()」がないとダメ
echo "argument $1 can't handle in function"
}
bug_version $1 ← シェル関数に引数として渡した例
echo "argument $1 can handle out of function"
$ sh bug.sh
argument arg can't handle in function
argument arg can handle out of function
0040名無しさん@お腹いっぱい。
2015/09/06(日) 17:59:13.35bug_versionを引数無しで呼び出してるので$1には何も設定されません
004139
2015/09/06(日) 18:00:18.46$ sh bug.sh arg
argument arg can't handle in function
argument arg can handle out of function
0042名無しさん@お腹いっぱい。
2015/09/06(日) 19:34:01.02まぁ Linux 限定だけど、
function bug_version {
echo "argument $(cat /proc/$$/cmdline | xargs -n1 -0 | sed -n 3p) can handle in function"
}
なんてするといいかも
0043名無しさん@お腹いっぱい。
2015/09/06(日) 19:39:35.79みんなありがとう
コードが綺麗になった
0044名無しさん@お腹いっぱい。
2015/09/09(水) 19:11:24.39grep "aaa\|bbb" はokなのに、grep "aaa\&bbb" はなぜ
だめなんでしょう?
0045名無しさん@お腹いっぱい。
2015/09/09(水) 20:10:57.27どちらも仕様どおりに正しく動く
何をもってダメという?
0046名無しさん@お腹いっぱい。
2015/09/09(水) 20:21:28.99私の環境ではこうなります。
$ echo "aaa bbb" | grep "aaa\|bbb"; echo $?
aaa bbb ccc
0
$ echo "aaa bbb" | grep "aaa\&bbb"; echo $?
1
0047名無しさん@お腹いっぱい。
2015/09/09(水) 20:25:36.29あれれ、「 ccc」入っちゃった。無視してくださいw
0048名無しさん@お腹いっぱい。
2015/09/09(水) 20:50:24.67だからそれは仕様どおり
0049名無しさん@お腹いっぱい。
2015/09/09(水) 20:54:06.69単に&と書いたのと同じ
005039、41
2015/09/10(木) 02:49:03.69ひょっとすると[grep]コマンドによる『AND検索』の方法(記述)を
『grep "aaa\&bbb"』だと勘違いしていない?
[grep]コマンドによる『AND検索』には『OR検索』のような正規表現による
記述方法『grep "aaa\|bbb"』は存在しないので、つぎの例のように地道
にパイプで繋ぐしかないけど
[grep]コマンドによる『AND検索』の方法
$ echo "aaa bbb" | grep "aaa" | grep "bbb" ; echo $?
aaa bbb
0
$ echo "aaa ccc" | grep "aaa" | grep "bbb" ; echo $? # マッチしないデータ「aaa ccc」の例
1
$
あと、>>44、>>46 って >>38 と同じ人?
0051名無しさん@お腹いっぱい。
2015/09/10(木) 07:50:58.43か、GNU grep なら
$ grep -P '(?=.*aaa)(?=.*bbb)'
でもOK。
0052名無しさん@お腹いっぱい。
2015/09/10(木) 07:56:54.380053名無しさん@お腹いっぱい。
2015/09/10(木) 17:51:40.810054名無しさん@お腹いっぱい。
2015/09/24(木) 23:16:07.36【POSIX】UNIXプログラミング【BSD】 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/unix/1443103705/
0055名無しさん@お腹いっぱい。
2015/09/27(日) 16:29:45.68%PART_A%
a11 a12 13
a21 a21 a23
a31 a32 a33
%PART_B%
b11 b12 b13 b14
b21 b22 b23 b24
b31 b32 b33 b24
このように%PART_x%(実はxはAとBがランダムに登場)で区切られながら
数行ずつ出力されているテキストを、値だけ(a11〜b24まで)、5列で左詰めの
CSV形式に整形するために、こんなスクリプトを作りました(ほとんどawkですが・・・)
#!/bin/sh
cat log.txt |
awk 'BEGIN{FLG=0}
/%PART_A%/{FLG=1; getline}
/%PART_B%/{FLG=2; getline}
{if (FLG==1) {print $1","$2","$3",0,0"}
else if (FLG==2) {print $1","$2","$3","$4",0"}
}'
期待通り動いてはいるのですが、フラグやgetline周りが、なんか力技?っぽくて
改善の余地があるように思ってます
このような処理をawkで書くときって、どのように書くとよいのでしょう
0056名無しさん@お腹いっぱい。
2015/09/27(日) 16:38:38.08この間、似たような事を業務でやったけど考えるの面倒だったから
pasteコマンドでひとつのファイルにして、特定フィールドを読み込む方法にした。
なにぶん、思想が古い年代なもんで複数ファイルを
同時に読み込んであーだこーだするのはCで書きたくなる。
0057名無しさん@お腹いっぱい。
2015/09/27(日) 17:34:07.98きたなくてもちゃんと動作するコードの方がよい
そんな格言なかったっけ?
0058名無しさん@お腹いっぱい。
2015/09/27(日) 19:24:41.10コードの可読性を語るとキリが無い。
シェルスクリプトで訳が判らなくなる書き方する人いるけど、ある意味才能としか思えない。
0059名無しさん@お腹いっぱい。
2015/09/28(月) 01:10:28.27awkについて語るスレ $2
http://peace.2ch.net/test/read.cgi/tech/1172242542/
もありますよ。a11からb24が全部数値で3つまでは確実に値が入ってるなら
awk 'BEGIN{OFS=","};!~/%/{print $1,$2,$3,$4+0,0}'
で済む気がするけど。
0060名無しさん@お腹いっぱい。
2015/10/04(日) 19:58:15.31きれいでも動かないコードより
きたなくてもちゃんと動作するコードの方がよい
そして、きれいでちゃんと動作するコードが
一番いいのは言うまでもない。
0061名無しさん@お腹いっぱい。
2015/10/04(日) 22:53:55.310062名無しさん@お腹いっぱい。
2015/10/06(火) 13:14:00.89下のコードは "^(?=\d)"にするとレス番号だけが行頭で表示され
本文はインデントされる2chですら処理できる
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
my $enc = 'UTF-8';
my ($delimiter, $search);
$delimiter = "^(?=\%PART_)"
GetOptions ('delimiter|d=s' => \$delimiter, 'search|s=s'=> \$search);
my $line = join('', <>);
my @lines = split /$delimiter/m, $line;
for (@lines) {print if /$search/;}
0063名無しさん@お腹いっぱい。
2015/10/13(火) 12:01:58.60勝手に半角のみと思い込んでた
自分用メモ
ひらがな: [ぁ-ん]
全角カタカナ: [ァ-ヾ]
半角カタカナ: [ヲ-゚]
全てのカタカナ: [ァ-ヾヲ-゚]
全角数字: [0-9]
全角英字: [a-zA-Z]
全角英数字: [0-z]
全角文字(英数字以外, ひらがな, カタカナ, 漢字, 記号): [、-鶴]
全角文字(英数字, ひらがな, カタカナ, 漢字, 記号): [、-鶴0-9a-zA-Z]
漢字: [一-鶴]
0064名無しさん@お腹いっぱい。
2015/10/13(火) 23:33:25.92・同じ結果→POSIX準拠
・結果が異なる→準拠してない
というのも豆
0065名無しさん@お腹いっぱい。
2015/10/15(木) 01:00:25.450066名無しさん@お腹いっぱい。
2015/10/16(金) 00:12:27.120067名無しさん@お腹いっぱい。
2015/10/16(金) 13:16:19.20例えば、特定のアプリケーションをアクティブにするスクリプトを書いたとして、それを
Ctrl+Alt+Gで実行してGoogleChromeをアクティブにするとか、そういう事です。
Alt+Tabで一つ一つ切り替えるのはうんざりなんですよね。
スクリプト自体はできてるんですが、それをショートカットと結びつける技が分かりません。
0068名無しさん@お腹いっぱい。
2015/10/16(金) 13:35:52.55シェルスクリプトの話ではない
0069名無しさん@お腹いっぱい。
2015/10/16(金) 13:41:08.99/apps/metacity/global_keybindings/panel_run_dialogとかって情報はすぐ出てくる
0070名無しさん@お腹いっぱい。
2015/10/16(金) 16:30:40.140071名無しさん@お腹いっぱい。
2015/10/18(日) 03:08:01.82w3mなら .w3m/keymap
xmonadなら .xmonad/xmonad.hs に書くような内容
0072名無しさん@お腹いっぱい。
2015/10/18(日) 03:29:42.190073名無しさん@お腹いっぱい。
2015/10/19(月) 12:52:16.450074名無しさん@お腹いっぱい。
2015/10/19(月) 14:00:50.570075名無しさん@お腹いっぱい。
2015/10/19(月) 14:28:46.620076名無しさん@お腹いっぱい。
2015/10/19(月) 15:27:19.76そんなんだから周囲に教えてくれる人が居なくて
2chで質問するハメになるんだよ
0077名無しさん@お腹いっぱい。
2015/10/20(火) 00:06:45.98わざわざbusybox縛りを入れて珍回答を期待してるのに普通の方法を答えるのもまあ2chらしいが。
っていうかnkfじゃないのな。
0078名無しさん@お腹いっぱい。
2015/10/20(火) 07:22:32.22(記載のアルファベットは例であり数字だったりマルチバイト文字だったりします)
AAAAAAAAA
BBBB
CCCCCCCCCC
DDDDDDDDDDD
EEEEEEEEEEE
各1行を2行に増やすことってできますか?
AAAAAAAAA
AAAAAAAAA
BBBB
BBBB
CCCCCCCCCC
CCCCCCCCCC
DDDDDDDDDDD
DDDDDDDDDDD
EEEEEEEEEEE
EEEEEEEEEEE
ループで1行ずつ読んで2行にして出力するくらいしか思いつかなかったのですが
パイプを使ってシンプルにできたりしませんか?
0079名無しさん@お腹いっぱい。
2015/10/20(火) 07:41:49.44sed p foo.txt
0080名無しさん@お腹いっぱい。
2015/10/20(火) 21:45:48.66ありがとうございます
こんなに簡単にできちゃった・・・
とりあえずpコマンド調べてみて
変換しない指定で返還前と変換後の2行が出力されるからこうなると理解しました
0081名無しさん@お腹いっぱい。
2015/10/20(火) 23:06:19.800082名無しさん@お腹いっぱい。
2015/10/21(水) 00:43:12.910083名無しさん@お腹いっぱい。
2015/10/21(水) 00:49:57.210084名無しさん@お腹いっぱい。
2015/10/21(水) 01:33:11.680085名無しさん@お腹いっぱい。
2015/10/21(水) 01:46:20.530086名無しさん@お腹いっぱい。
2015/10/21(水) 01:56:17.21sed 'N; s/.*\n//'
0087名無しさん@お腹いっぱい。
2015/10/21(水) 06:13:41.20sed -n 1~2p
0088名無しさん@お腹いっぱい。
2015/10/21(水) 06:38:20.240089名無しさん@お腹いっぱい。
2015/10/21(水) 07:02:03.890090名無しさん@お腹いっぱい。
2015/10/22(木) 08:26:25.71現代でも使える場面のあるsedは凄い
0091名無しさん@お腹いっぱい。
2015/10/22(木) 12:24:50.150092名無しさん@お腹いっぱい。
2015/10/22(木) 14:32:56.99スマートな方法はありませんか?
ファイル変換しないといけないでしょうか?
0093名無しさん@お腹いっぱい。
2015/10/22(木) 15:27:18.78pdftotext あたりで標準出力に吐かせて grep とか
0094名無しさん@お腹いっぱい。
2015/10/22(木) 15:55:01.58pdftotext hoge.pdf - | grep aaa
pdftotextでググったらこのページが
ttp://www.clear-code.com/blog/2010/8/2.html
Excelはssconvertを使えばいいようですね
0095名無しさん@お腹いっぱい。
2015/10/22(木) 22:52:20.38総務省の『憲法改正国民投票法』、でググってみてください。
日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、日本人の悲願である
改憲の成就が決まります。皆様方、必ず投票に自ら足を運んでください。お願い致します。
0096名無しさん@お腹いっぱい。
2015/10/27(火) 08:43:35.49ってことかな?
大きなテキストファイルをawkで処理するときにcatで投げ込むのと、ファイル読み込みするのどっちが速いか比較 - カメニッキ
http://tapira.hatenablog.com/entry/2015/07/22/214419
大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog
http://d.hatena.ne.jp/yohei-a/20150728/1438099752
0097名無しさん@お腹いっぱい。
2015/10/27(火) 09:02:14.04それって Linux OS でマルチコアで出力先が SSD の場合にだけ
速くなるかもしれないってオチだったような
0098名無しさん@お腹いっぱい。
2015/10/27(火) 11:16:32.980099名無しさん@お腹いっぱい。
2015/10/27(火) 12:25:26.580100名無しさん@お腹いっぱい。
2015/10/27(火) 12:54:33.20今の時代SSDしかないような気がするんだけど・・・
0101名無しさん@お腹いっぱい。
2015/10/27(火) 17:55:11.78他の環境だとリダイレクトの方が速かったよ
0102名無しさん@お腹いっぱい。
2015/10/27(火) 18:45:52.060103名無しさん@お腹いっぱい。
2015/10/27(火) 23:01:18.380104名無しさん@お腹いっぱい。
2015/10/27(火) 23:24:17.69その書いたやつを見せてください。ぜひとも参考にしたいです
0105名無しさん@お腹いっぱい。
2015/10/28(水) 05:47:50.830106名無しさん@お腹いっぱい。
2015/10/28(水) 06:27:57.970107名無しさん@お腹いっぱい。
2015/10/28(水) 07:30:41.83入出力パスとか、オプションのon/off(1か0か)などを書いておき、その設定ファイルを
シェルスクリプト上から読み込んで、処理内容に反映して実行することを想定しています
こういった処理をする場合、業界の一般的な様式みたいな決まりってありますか。
また、いろいろな実装方法が考えられますが、どのようなコマンドで実現するのが適切でしょうか。
busyboxに入ってそうなコマンドが一通り動ける環境を想定しています。
■ このスレッドは過去ログ倉庫に格納されています