[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:47 / Filesize : 258 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

シェルスクリプト総合 その25



1 名前:名無しさん@お腹いっぱい。 mailto:sageteoff [2015/08/14(金) 23:42:01.51 .net]
シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
 FreeBSDユーザは/bin/shの正体がashなので注意。
 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。
  src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/
  heirloom.sourceforge.net/sh.html
・csh/tcshのシェルスクリプトは推奨されません。
 (理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manや参考リンクを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルで使えるワイルドカード等は正規表現ではありません。
 正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆーな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 awkまたはperlの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
□回答者への注意事項:
・シェルスクリプトでの処理方法を質問しているのに、よくわからずに
 「そういうのはperl使いましょう」と回答するのはやめましょう。
 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。
前スレ
シェルスクリプト総合 その24
peace.2ch.net/test/read.cgi/unix/1415634843/

21 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/08/23(日) 22:25:01.69 .net]
>>19
チルダがクォートされているかどうかで違う
$ echo ~/Desktop/foo
/home/hoge/Desktop/foo
$ echo "~/Desktop/foo"
~/Desktop/foo

22 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/08/23(日) 22:53:07.70 .net]
>>19
$ sh test.sh "${HOME}/Desktop/foo"

23 名前:19 mailto:sage [2015/08/23(日) 23:32:18.17 .net]
>>20-21
レスどうもありがとうございます
コード側の問題じゃなくて渡す側の書き方に問題があったんですね
空白を含んでいないパスは期待どおりになりました
が空白を含んでいる場合はやっぱり「*」が展開されずに
$ sh test.sh "/home/hoge/Desktop/foo bar"
または
$ sh test.sh "${HOME}/Desktop/foo bar"
とすると
/home/hoge/Desktop/foo
bar/*
と表示されてしまいます

24 名前:19 mailto:sage [2015/08/23(日) 23:37:21.98 .net]
すみません
${1}/* と "${1}/*" はだめでしたが "${1}"/* としたらうまくいきました
ダブルクォートって難しいです

25 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/08/24(月) 04:09:11.65 .net]
${1}/ 中のファイルに空白を含むファイル名があるとダメ

/home/hoge/Desktop/foo bar/space ship.txt があると

/home/hoge/Desktop/foo bar/space
ship.txt

と2行に渡って表示される

26 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/08/25(火) 09:55:00.50 .net]
そうでもないよ
$ 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

27 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/08/25(火) 11:38:42.71 .net]
>>24>>25 と同様そうでもない
対象ディレクトリと対象ディレクトリ内のファイル名の両方にスペースが含まれて
いても問題ない
あと、ソースに渡された引数+"/*"がどう展開されるかの表示を追加

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

28 名前:26 mailto:sage [2015/08/25(火) 11:40:11.64 .net]
bash-2.05$ mkdir "foo bar"
bash-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$

29 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/08/25(火) 12:23:17.60 .net]
>>25
>>24 が駄目と言ってるのは ${1} の場合の話だろw

"$1"ならもちろん問題ないよ。



30 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/08/25(火) 12:29:22.17 .net]
bash-2.05 とか古いの使うにも程がある。劣度法度9か何かか?

31 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/08/25(火) 12:55:51.30 .net]
>>28
いや…ファイルの話だよね?割りとどうでもいい流れだけど一応
$ 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
$

32 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/08/25(火) 13:12:03.64 .net]
話を理解していない人々が多過ぎる。スルーしよw

33 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/08/25(火) 13:14:16.88 .net]
>>30
その場合、 ${1} に . が代入されるから問題が起きてないだけ。
${1} とか半端な記述せずに "$1"にすること。${1}ってクォートなしの $1 と同じだから。

34 名前:26 mailto:sage [2015/08/25(火) 13:25:30.87 .net]
「"${1}"」ではなくて「${1}」という記述にこだわるならファイル名にスペースが
含まれる場合の常套手段で「IFS」を「改行コード」のみに設定すればOK

bash-2.05$ cat test.sh
#!/bin/sh

IFS_BACKUP=$IFS
IFS=

35 名前:"
"

echo -n "arg/* = '"
echo -n "${1}"/*
echo "'"
echo

for file in ${1}/*
do
echo "${file}"
done

IFS=$IFS_BACKUP

exit 0
[]
[ここ壊れてます]

36 名前:33 mailto:sage [2015/08/25(火) 13:26:35.02 .net]
【続き】
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$

37 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/08/25(火) 13:30:12.68 .net]
>>26 それは改行コード入りファイル名があるからNG

38 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/08/25(火) 13:58:06.49 .net]
このスレの住人にとっては当たり前過ぎる基本的初歩的なことをわざわざ多くの行数使って書き込まれてもなぁ

39 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/08/30(日) 12:52:52.88 .net]
>>13
最近cygwin使ってないんで試してないけど
神が現れてsudo実装してping打てるようになった模様
詳細はcygwinスレ参照

そうそうcygwinのpingって何か違ったんだっけ?



40 名前:名無しさん@お腹いっぱい。 [2015/09/06(日) 16:40:59.13 .net]
引数 $1 が function の中から参照できない
標準では全部グローバルのスコープじゃなかったのか?

グローバル変数に引数をコピーするとグローバル変数は参照できるけど
引数はそういうものなのか?

~/ 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

41 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/06(日) 17:58:01.08 .net]
>>38
> 引数 $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

42 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/06(日) 17:59:13.35 .net]
引数はそういうものです
bug_versionを引数無しで呼び出してるので$1には何も設定されません

43 名前:39 mailto:sage [2015/09/06(日) 18:00:18.46 .net]
【訂正】
$ sh bug.sh arg
argument arg can't handle in function
argument arg can handle out of function

44 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/06(日) 19:34:01.02 .net]
>>38
まぁ Linux 限定だけど、

function bug_version {
echo "argument $(cat /proc/$$/cmdline | xargs -n1 -0 | sed -n 3p) can handle in function"
}

なんてするといいかも

45 名前:名無しさん@お腹いっぱい。 [2015/09/06(日) 19:39:35.79 .net]
愚かにも引数忘れてた
みんなありがとう
コードが綺麗になった

46 名前:名無しさん@お腹いっぱい。 [2015/09/09(水) 19:11:24.39 .net]
質問です。

grep "aaa\|bbb" はokなのに、grep "aaa\&bbb" はなぜ
だめなんでしょう?

47 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/09(水) 20:10:57.27 .net]
>>44
どちらも仕様どおりに正しく動く
何をもってダメという?

48 名前:名無しさん@お腹いっぱい。 [2015/09/09(水) 20:21:28.99 .net]
>>45

私の環境ではこうなります。

$ echo "aaa bbb" | grep "aaa\|bbb"; echo $?
aaa bbb ccc
0
$ echo "aaa bbb" | grep "aaa\&bbb"; echo $?
1

49 名前:名無しさん@お腹いっぱい。 [2015/09/09(水) 20:25:36.29 .net]
>>45

あれれ、「 ccc」入っちゃった。無視してくださいw



50 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/09(水) 20:50:24.67 .net]
>>46
だからそれは仕様どおり

51 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/09(水) 20:54:06.69 .net]
\|には特別な意味があるけど\&にはないんだよ
単に&と書いたのと同じ

52 名前:39、41 mailto:sage [2015/09/10(木) 02:49:03.69 .net]
>>44>>46
ひょっとすると[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 と同じ人?

53 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/10(木) 07:50:58.43 .net]
$ grep -E 'aaa.*bbb|bbb.*aaa'

か、GNU grep なら

$ grep -P '(?=.*aaa)(?=.*bbb)'

でもOK。

54 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/10(木) 07:56:54.38 .net]
awk 使え awk '/aaa/&&/bbb/'

55 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/10(木) 17:51:40.81 .net]
\& なんてどこに書いてあったの

56 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/24(木) 23:16:07.36 .net]
宣伝

【POSIX】UNIXプログラミング【BSD】 [転載禁止]©2ch.net
peace.2ch.net/test/read.cgi/unix/1443103705/

57 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/27(日) 16:29:45.68 .net]
こんな風なテキストファイルlog.txtがあります
%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で書くときって、どのように書くとよいのでしょう

58 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/27(日) 16:38:38.08 .net]
力技でも動いているならそれでいいんじゃない?
この間、似たような事を業務でやったけど考えるの面倒だったから
pasteコマンドでひとつのファイルにして、特定フィールドを読み込む方法にした。
なにぶん、思想が古い年代なもんで複数ファイルを
同時に読み込んであーだこーだするのはCで書きたくなる。

59 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/27(日) 17:34:07.98 .net]
きれいでも動かないコードより
きたなくてもちゃんと動作するコードの方がよい
そんな格言なかったっけ?



60 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/27(日) 19:24:41.10 .net]
要求仕様通りに動くことが大前提ですな。
コードの可読性を語るとキリが無い。
シェルスクリプトで訳が判らなくなる書き方する人いるけど、ある意味才能としか思えない。

61 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/09/28(月) 01:10:28.27 .net]
過疎ってるけど
awkについて語るスレ $2
peace.2ch.net/test/read.cgi/tech/1172242542/
もありますよ。a11からb24が全部数値で3つまでは確実に値が入ってるなら
awk 'BEGIN{OFS=","};!~/%/{print $1,$2,$3,$4+0,0}'
で済む気がするけど。

62 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/04(日) 19:58:15.31 .net]
>>57
きれいでも動かないコードより
きたなくてもちゃんと動作するコードの方がよい

そして、きれいでちゃんと動作するコードが
一番いいのは言うまでもない。

63 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/04(日) 22:53:55.31 .net]
正規表現で書くとどうなるんだ?

64 名前:名無しさん@お腹いっぱい。 [2015/10/06(火) 13:14:00.89 .net]
getline回りはsplitで"^(?=\%PART_)"で区切れると楽
下のコードは "^(?=\d)"にするとレス番号だけが行頭で表示され
本文はインデントされる2chですら処理できる

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
my $enc = 'UTF-8';

my ($delimiter, $search);
$delimiter = "^(?=\%PART_)"
GetOp

65 名前:tions ('delimiter|d=s' => \$delimiter, 'search|s=s'=> \$search);
my $line = join('', <>);
my @lines = split /$delimiter/m, $line;
for (@lines) {print if /$search/;}
[]
[ここ壊れてます]

66 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/13(火) 12:01:58.60 .net]
ワイルドカードて全角も扱えるんだね
勝手に半角のみと思い込んでた
自分用メモ
ひらがな: [ぁ-ん]
全角カタカナ: [ァ-ヾ]
半角カタカナ: [ヲ-゚]
全てのカタカナ: [ァ-ヾヲ-゚]
全角数字: [0-9]
全角英字: [a-zA-Z]
全角英数字: [0-z]
全角文字(英数字以外, ひらがな, カタカナ, 漢字, 記号): [、-鶴]
全角文字(英数字, ひらがな, カタカナ, 漢字, 記号): [、-鶴0-9a-zA-Z]
漢字: [一-鶴]

67 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/13(火) 23:33:25.92 .net]
[ぁ-ん]と[ん-ぁ]で
・同じ結果→POSIX準拠
・結果が異なる→準拠してない
というのも豆

68 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/15(木) 01:00:25.45 .net]
\p{Hiragana}

69 名前:名無しさん@お腹いっぱい。 [2015/10/16(金) 00:12:27.12 .net]
第一感その手のものを使って保守性ケアするよな



70 名前:名無しさん@お腹いっぱい。 [2015/10/16(金) 13:16:19.20 .net]
任意のキーボード・ショートカットを突然入力すると、任意のスクリプトを実行するような技はありますか。
例えば、特定のアプリケーションをアクティブにするスクリプトを書いたとして、それを
Ctrl+Alt+Gで実行してGoogleChromeをアクティブにするとか、そういう事です。
Alt+Tabで一つ一つ切り替えるのはうんざりなんですよね。
スクリプト自体はできてるんですが、それをショートカットと結びつける技が分かりません。

71 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/16(金) 13:35:52.55 .net]
WMとかDEの機能使った方がいいんじゃね
シェルスクリプトの話ではない

72 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/16(金) 13:41:08.99 .net]
「linux キーボードショートカット カスタマイズ」でぐぐれ
/apps/metacity/global_keybindings/panel_run_dialogとかって情報はすぐ出てくる

73 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/16(金) 16:30:40.14 .net]
キーバインド割り当てかaliasを作るかじゃない?

74 名前:名無しさん@お腹いっぱい。 [2015/10/18(日) 03:08:01.82 .net]
だな
w3mなら .w3m/keymap
xmonadなら .xmonad/xmonad.hs に書くような内容

75 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/18(日) 03:29:42.19 .net]
busyboxでunicode変換ってどうする?

76 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/19(月) 12:52:16.45 .net]
busybox sh に限らず、iconv とかuconvとか入れて使うんじゃない?

77 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/19(月) 14:00:50.57 .net]
すみませんが詳しい方のみ回答をお願いします

78 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/19(月) 14:28:46.62 .net]
unicodeの何を?何へ?何から?変換するのかもうちょっと具体的に書かないと応える気にならない

79 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/19(月) 15:27:19.76 .net]
詳しくないのはどっちだよ
そんなんだから周囲に教えてくれる人が居なくて
2chで質問するハメになるんだよ



80 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/20(火) 00:06:45.98 .net]
只のコピペの別人にキレてどうするよ。

わざわざbusybox縛りを入れて珍回答を期待してるのに普通の方法を答えるのもまあ2chらしいが。
っていうかnkfじゃないのな。

81 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/20(火) 07:22:32.22 .net]
以下のようなテキストファイルがあるとして
(記載のアルファベットは例であり数字だったりマルチバイト文字だったりします)

AAAAAAAAA
BBBB
CCCCCCCCCC
DDDDDDDDDDD
EEEEEEEEEEE

各1行を2行に増やすことってできますか?

AAAAAAAAA
AAAAAAAAA
BBBB
BBBB
CCCCCCCCCC
CCCCCCCCCC
DDDDDDDDDDD
DDDDDDDDDDD
EEEEEEEEEEE
EEEEEEEEEEE

ループで1行ずつ読んで2行にして出力するくらいしか思いつかなかったのですが
パイプを使ってシンプルにできたりしませんか?

82 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/20(火) 07:41:49.44 .net]
>>78
sed p foo.txt

83 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/20(火) 21:45:48.66 .net]
>>79
ありがとうございます
こんなに簡単にできちゃった・・・

とりあえずpコマンド調べてみて
変換しない指定で返還前と変換後の2行が出力されるからこうなると理解しました

84 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/20(火) 23:06:19.80 .net]
coolだよね

85 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/21(水) 00:43:12.91 .net]
>>78を元に戻す方法は?

86 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/21(水) 00:49:57.21 .net]
uniq

87 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/21(水) 01:33:11.68 .net]
4行並んだら破綻

88 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/21(水) 01:46:20.53 .net]
awk NR%2

89 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/21(水) 01:56:17.21 .net]
あえてsedで
sed 'N; s/.*\n//'



90 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/21(水) 06:13:41.20 .net]
GNU sed 限定

sed -n 1~2p

91 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/21(水) 06:38:20.24 .net]
sed 'n;d' だけでいいのにw

92 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/21(水) 07:02:03.89 .net]
尊い

93 名前:名無しさん@お腹いっぱい。 [2015/10/22(木) 08:26:25.71 .net]
そうだな
現代でも使える場面のあるsedは凄い

94 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/22(木) 12:24:50.15 .net]
sedでutfの変換テーブル書いたらどの位の速度で動くものだろうか?

95 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/22(木) 14:32:56.99 .net]
pdfファイルやExcelファイルを文字検索したいのですが
スマートな方法はありませんか?
ファイル変換しないといけないでしょうか?

96 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/22(木) 15:27:18.78 .net]
変換しないとだめです
pdftotext あたりで標準出力に吐かせて grep とか

97 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/22(木) 15:55:01.58 .net]
こんな感じになりました
pdftotext hoge.pdf - | grep aaa

pdftotextでググったらこのページが
ttp://www.clear-code.com/blog/2010/8/2.html
Excelはssconvertを使えばいいようですね

98 名前:名無しさん@お腹いっぱい。 [2015/10/22(木) 22:52:20.38 .net]
☆ 日本の核武装は早急に必須ですわ。☆
総務省の『憲法改正国民投票法』、でググってみてください。
日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、日本人の悲願である
改憲の成就が決まります。皆様方、必ず投票に自ら足を運んでください。お願い致します。

99 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/27(火) 08:43:35.49 .net]
cat file|した方がいいことも有るぞハゲ
ってことかな?

大きなテキストファイルをawkで処理するときにcatで投げ込むのと、ファイル読み込みするのどっちが速いか比較 - カメニッキ
tapira.hatenablog.com/entry/2015/07/22/214419

大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog
d.hatena.ne.jp/yohei-a/20150728/1438099752



100 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/27(火) 09:02:14.04 .net]
>>96
それって Linux OS でマルチコアで出力先が SSD の場合にだけ
速くなるかもしれないってオチだったような

101 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/27(火) 11:16:32.98 .net]
でも実際速くなったんでしょ?

102 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/27(火) 12:25:26.58 .net]
今の時代マルチコアしかないような気がするんだけど・・・

103 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/27(火) 12:54:33.20 .net]
今の時代Linuxしかないような気がするんだけど・・・
今の時代SSDしかないような気がするんだけど・・・

104 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/27(火) 17:55:11.78 .net]
>>98
他の環境だとリダイレクトの方が速かったよ

105 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/27(火) 18:45:52.06 .net]
それは反論になってない

106 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/27(火) 23:01:18.38 .net]
C言語で書いたほうが早かったよ

107 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/27(火) 23:24:17.69 .net]
>>103
その書いたやつを見せてください。ぜひとも参考にしたいです

108 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 05:47:50.83 .net]
system("cat file | command");

109 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 06:27:57.97 .net]
同じスクリプトでもcatを使うと電解コンデンサがライトアップしやすいよw



110 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 07:30:41.83 .net]
windowsでいうINIファイルのような、設定情報を格納したファイルを作ろうとしています。

入出力パスとか、オプションのon/off(1か0か)などを書いておき、その設定ファイルを
シェルスクリプト上から読み込んで、処理内容に反映して実行することを想定しています

こういった処理をする場合、業界の一般的な様式みたいな決まりってありますか。
また、いろいろな実装方法が考えられますが、どのようなコマンドで実現するのが適切でしょうか。

busyboxに入ってそうなコマンドが一通り動ける環境を想定しています。

111 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 08:21:07.49 .net]
>>107
あなたはどんな業界の人ですか?

112 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 10:38:06.95 .net]
設定ファイル自体をシェルスクリプトにして . しちゃうのが楽じゃね
RedHat系なら /etc/sysconfig/ 以下、Debian系なら /etc/default/ 以下を参考に

113 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 11:48:34.73 .net]
またbusyboxの人か

114 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 11:54:18.98 .net]
こうするのが楽とかじゃなくて業界標準でお願いします

115 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 12:20:06.26 .net]
普通にINIファイル形式でいい
シェルスクリプトから呼べば(実行すれは)環境変数として設定されるようになる

116 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 12:21:45.13 .net]
ポイントは読み込むんじゃなくて実行させるってこと
readしてexportするんじゃなくてそのまま実行して環境変数に設定する

117 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 13:28:25.07 .net]
実行はしたくないです。インジェクションされます。。

118 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 13:35:42.31 .net]
セキュリティが心配なら標準とは対極の方向に向かうべきだろアホか

119 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 15:00:41.96 .net]
>>109
>>112
>>113

107です、ありがとうございました。ファイルを読ませることしか頭にありませんでしたので、聞いてよかったです。
その方式で、スクリプトの冒頭で設定を担当するコードを実行するようにします。



120 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 22:16:32.33 .net]
質問してるくせに偉そうだな

121 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/10/28(水) 23:07:56.69 .net]
>>117
具体的にどこが偉そうなの?どこがカンに障るの?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<258KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef