■掲示板に戻る■ 1- 101- 最新50

便利なシェルスクリプト見せろ

1 :名無しさん@お腹いっぱい。 :2001/08/05(日) 03:25
~/bin/navi2ch

#!/bin/sh
emacs -e navi2ch

53 :はろう :01/09/12 22:59
CSVファイル内からシェルに引数で渡す時
オークで$0〜$9を使うのはしっとりやすが
00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15
15つ目の引数を引っ張りたい時はどうしたらいいでしょうか?

54 :名無しさん@お腹いっぱい。 :01/09/12 23:03
あるディレクトリのShiftJISで書かれたファイル名をEUCに変換したいです。
nkfを使ってますがうまくいきません。
ファイル名に日本語使うな、というのは許して下さい。

55 :名無しさん@お腹いっぱい。 :01/09/12 23:45
>>53
そのまま $15 でとりだせない?

56 :名無しさん@お腹いっぱい。 :01/09/12 23:50
>>54

$ ls file.sjis | nkf -e > name.eucj
$ mv file.sjis `cat name.eucj`

なんてのはどうよ。

57 :名無しさん@Emacs :01/09/13 00:02
SJIS 固定なら -e より -Se の方がいいよ。

for SJIS in `find` ;do
EUC="`echo "$SJIS" | nkf -Se`"
[ -f "$EUC" ] || mv "$SJIS" "$EUC"
done

昔書いたやつだから自信無し。
ぱっと見、ディレクトリに弱そう。

58 :54 :01/09/13 03:00
>>56,57
ありがとう。対象としているのはwinでつくったzipファイルから解凍してできたファイルで
ファイル名にスペースも含まれているようで
for SJIS in `find` ;do のところが期待通りに動いてくれません。
スペースが含まれていない場合はうまくいきました。

59 :名無しさん@お腹いっぱい。 :01/09/13 08:51
find -type f|{
while read SJIS; do
...
done
}
$B$G=PMh$J$$(B?

60 :はろう :01/09/13 13:26
55へ $15で取り出せませんのでこまっとります。
$0〜$9までしか使えないのかな

61 :ほい :01/09/13 13:51
shift

62 :名無しさん@お腹いっぱい。 :01/09/13 13:57
>>60
${15}
じゃだめ?

63 :ほい :01/09/13 14:03
>60
shiftつかえ。$0〜$9しかつかえない。
$10は${1}0戸解釈される。
ちょと検索したらたくさんヒットしたぞ。
http://www.netfort.gr.jp/~tomokuni/lms/shell/shell.txt

64 :はろう :01/09/13 15:12
レスありがとうございます。
awk'{print $15}'だと無理なんですが
awk'{print $5,$15}'だとうまくいくんです。
単独でとれないんですか?
${15}は知ってますがうまくいかないんす;;
63さんのHPいけなかったす;;

65 :名無しさん@お腹いっぱい。 :01/09/13 15:19
>>63
> http://www.netfort.gr.jp/~tomokuni/lms/shell/shell.txt

すげぇ。これはすげぇ。

66 :ほい :01/09/13 15:41
httpがわざと全角にしてあったりする。
awkは別物。

67 :名無しさん@お腹いっぱい。 :01/09/13 15:52
>>64
とれるだろ。とれないって具体的にどうなってんの?エラーが出るとか?

68 : 名無しさん@お腹いっぱい :01/09/13 17:09
$ echo -1-,-2-,-3-,-4-,-5-,-6-,-7-,-8-,-9-,-10-,-11-,-12-,-13-,-14-,-15-,-16-,-17-,-18-,-19-,20 | awk -F, '{ print $15 }'
-15-
GNU awkでもnawkでもこうなるが?

69 :ほい :01/09/13 17:35
>>68
そりゃそうなるでしょ。
-1-,-2-,-3-,-4-,-5-,-6-,-7-,-8-,-9-,-10-,-11-,-12-,-13-,-14-,-15-,-16-,-17-,-18-,-19-,20
という一行をデータとしてawkに渡して、その一行をawkが処理してるんだから。
しぇるの$1,$2とかは関係してない。

しぇるとおうくの変数が、たまたま、$1とか同じかたちをしているけど別言語。
shiftを調べんか。ゴルァ

70 :ほい :01/09/13 17:40
すまそ。俺が馬鹿だ。ぼけてた。

71 :ほい :01/09/13 17:51
シェルの話とおもてた。(冷や汗
今までの話を全部忘れてくんなまし。
で、$15とかもできるはずた。

72 : 68 :01/09/13 18:00
つーか、

>>53
> CSVファイル内からシェルに引数で渡す時
> オークで$0〜$9を使うのはしっとりやすが
> 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15
> 15つ目の引数を引っ張りたい時はどうしたらいいでしょうか?

この文書の意味が分かりにくい。一行目謎。
俺もどちらの話か、どころか何の話なのか分からなくなってきた…

73 :名無しさん@お腹いっぱい。 :01/09/13 18:05
>>71
>>53の書き方も分かりづらい。
それにうまくいかないってことはシェルとの関係でまずいとこがありそ。

74 :名無しさん@お腹いっぱい。 :01/09/13 18:06
「しっとりやす」もわかりづらい。

しっとり安。
すとっぷ高。

75 :名無しさん@お腹いっぱい。 :01/09/13 18:27
具体的にうまくいかない例を書こう。

76 :名無しさん@お腹いっぱい。 :01/09/13 20:58
""でかこってそうだな。

77 :名無しさん@Emacs :01/09/13 23:36
>>58

for SJIS in "$@" ;do でパラメタで渡す分にはいけると思う。
量が多かったらやっぱ find つかって
find -type f -exec スクリプト名 {} \; とかしてくれ。
ディレクトリは `find -type d|sort -r` を渡すとか。

78 :はろう :01/09/14 09:41
わかりにくかったようですみません
再度説明させてもらうと
00,01,〜,14,15
99,98,〜,91,90
というような内容のCSVファイルから
15つめのレコードを引っ張りたいんです
awk'{print $5,","$15}'< a.csv > b.csv だと二つともうまくひっぱってくれますが
awk'{print $15}'< a.csv > b.csv だとひっぱってくれないんです。
なぜでしょうか?

79 :名無しさん@XEmacs :01/09/14 10:13
半分、教えて君なんですが、ディレクトリ内のファイル数を数え上げるのに、

$ for ff in '.'; do
>i=0
>for f in `ls *.el`; do
>i=`expr $i + 1`
>done
>echo "files count: $i"
>done
files count: 16

とかしてます。
結構面倒臭いんで、何か良いやり方知ってたら教えて下さい。
awk か perl なら BEGIN,END で簡単なんかな。

80 :名無しさん@お腹いっぱい。 :01/09/14 10:14
ls |wc -l
かな。

81 :名無しさん :01/09/14 10:20
>>80
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

82 :名無しさん :01/09/14 11:00
こんにちは。
4.4Rが20日にでるんですよね。

僕がFreeBSD使い初めてから初めてのバージョンアップ
なんですが、いままで構築した設定など、そのまんま
4.4Rに以降することはできるでしょうか?
その方法を教えてくれないでしょうか?

もしくわ、新しくインストールしなおすべきでしょうか?

83 : 名無しさん@Emacs :01/09/14 11:29
>>78
-F,がなかったり、'{ print $5, ",", $15 }'あるいは'{ print $5 "," $15 }'じゃないのは何故?
How 「ひっぱってくれない」?
それから>>68を実行してみ。

84 :名無しさん@お腹いっぱい。 :01/09/14 11:29
>>82
cvsup して make world して mergemaster
google で検索せよ.

4.3 -> 4.4 は特にハマる要素無かったはずだな

85 : 名無しさん@Emacs :01/09/14 11:31
>>58
find dir -print0 | xargs -null commnd

86 :はろう :01/09/14 13:05
ひっぱってくれない=レコード15にあるデータ($15)をもってきてくれないです。
awk、ーFついてなくても動きますよ

87 :82 :01/09/14 13:25
スレ違いでした。

88 :名無しさん@お腹いっぱい。 :01/09/14 13:37
>>86
フィールドセパレータがデフォルトで "," になっている awkって?

89 :ほい :01/09/15 01:31
88が正解の気がする。
{print $1}
してみれ。

90 :名無しさん@お腹いっぱい。 :01/09/15 02:16
>>78
外してるかもだけど、

cut -f15 -d, a.csv > a.csv

ではだめなの?

91 :名無しさん@お腹いっぱい。 :01/09/15 09:04
>>90
ブランクのあるデータだとだめですね(わら

92 :名無しさん@お腹いっぱい。 :01/09/15 09:41
>>91
だってブランクもフィールドの一部じゃん。(苦

93 : 83 :01/09/16 22:56
>>86
> awk、ーFついてなくても動きますよ

動作しても、意図したようには働かないでしょ。

$ echo 1,2, 3,4, 5,6, 7,8, 9,10, 11,12, 13,14, 15 | awk '{ print $3 * 3 }'
15 # "5,6" * 3 → "5" * 3 → 5 * 3 → 15

こんな落ちと強く予想。
# 「動きますよ」がまた意味不明だし、-Fの引数の「,」がなくなっているのは…

94 :はろう :01/09/19 09:28
HTTPのアクセスログから
不特定のIPアドレス、アクセス数をシェルか、オークで収集、統計できますか?
できるとしたらやり方を教えてください。よろしくお願いします。

95 :- :01/09/19 10:17
モロ、無修正画像サイト発見!

http://www.sex-jp.net/dh/01/
http://www.sex-jp.net/dh/02/
http://www.sex-jp.net/dh/03/
http://www.sex-jp.net/dh/04/

96 :ほい :01/09/19 11:12
>>94
質問の意味が若干不明だが、
awkで、IPを動的配列の添え字にして 統計処理する。
END{}の中でfor( in )を用いて添え字の要素を取り出してprintする。
これで簡単にできるとおもうけど教えない。

http://www.kt.rim.or.jp/%7ekbk/gawk-30/gawk_12.html

97 :ほい :01/09/19 11:17
動的配列->連想配列
の間違い

98 :名無しさん@お腹いっぱい。 :01/09/20 09:07
Windowsのstartコマンド
みたいなシェル書いてー

99 :ほれ :01/09/20 18:41
#!/bin/sh

nohup "$@" &

100 :名無しさん@お腹いっぱい。 :01/09/21 12:57
んーnohupの意味があんまりわかりません
やりたいのは
start nantara.txtとやると勝手にvimが
start hogehoge.htmlとやると勝手にnetscapeが立ち上がるようにしたい
のですが自分で作ろうと思います。

101 :名無しさん@お腹いっぱい。 :01/09/21 22:28
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?

102 :名無しさん@お腹いっぱい。 :01/09/21 22:28
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?
dos2unixとシェルスクリプトどっちがいいかな?

103 :名無しさん@お腹いっぱい。 :01/09/21 22:30
俺が何言いたいかわかるよな。

\r \nを\nにしたり
sjis を eucにしたりな。(nkf)

104 :hp :01/09/21 22:32
http://www5d.biglobe.ne.jp/~musume/
↑加護のバナーをクリックしたらスゴイことに!!

105 :名無しさん@お腹いっぱい。 :01/09/22 12:19
>100
#!/bin/sh
case "$1" in
""|-h|--help) echo "usage: start filename [options]...";;
*.txt) vim "$@";;
*.html) netscape "$@";;
...
*) "$@";;
esac
とするだけだと思うが。

106 :100 :01/09/22 22:24
>>105
おお、ありがとう。
なるほど。

107 :名無しさん@お腹いっぱい。 :01/09/22 22:34
http://www2u.biglobe.ne.jp/~hole/

108 :名無しさん@お腹いっぱい。 :01/09/26 11:15
# cat ~/bin/zpatch
#!/bin/sh
infile=
args=
infileflag=false

for arg in "$@"; do
if $infileflag; then
infileflag=false
infile="$arg"
arg="-"
else
infileflag=false
case "$arg" in
-i|--input) infileflag=true ;;
--input=*) infile="`echo \"$arg\"|sed -e s/^--input=//`" ;;
esac
fi
args="$args $arg"
done

trap 'exit 130' 2

if test -z "$infile"; then
exec patch "$@"
else
zcat "$infile" | patch $args
fi

要するにzcat hoge|patch -p0とかでC-cが利かないのが嫌なだけ

109 :samefile :01/09/27 01:46
#!/bin/sh

FILESIZE=`find -type f -printf '%s\n' | sort -n | uniq -d`
for SIZE in $FILESIZE ;do

FILELIST=`find -type f -size $SIZE\c`
for FILE1 in $FILELIST ;do
STATUS=search
for FILE2 in $FILELIST ;do
case $STATUS in
search)
if [ "$FILE1" = "$FILE2" ]; then
STATUS=start
fi ;;
start)
if cmp -s "$FILE1" "$FILE2"; then
STATUS=found
echo -e "$FILE1\t$FILE2"
fi ;;
found)
break ;;
esac
done
done

done


新着レスの表示

名前: E-mail (省略可) :

read.cgi ver5.26+ (01/10/21-)