1 名前:デフォルトの名無しさん [2005/04/04(月) 03:43:03 ] シェルスクリプトに関する質問・回答や議論等を行う相談室スレッド。
862 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:08:13 ] エラーの原因はよくわからないけど、パイプするかfind -execするかしたらどう
863 名前:861 mailto:sage [2008/04/29(火) 22:27:15 ] すみません bashでなくてzshでした bashだとちゃんと動きました
864 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:29:44 ] zshなら$tgtsが単語に分割されないから。${=tgts}だといい
865 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 19:00:56 ] シェルスクリプト修正の工数見積もりにあたって、修正対象のスクリプトのステップ数を出したいのですが、みなさんはどのような方法で行っているのでしょうか? よろしくお願いいたします。
866 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 20:17:06 ] >>865 先に(こっそり)スクリプトを書いて、実績を「工数見積」として出す。 シェルスクリプトを「ステップ数」で見積もるなど馬鹿馬鹿しくてやってられない。 ステップ数換算で、ど〜の・こ〜の言うのは太古のCOBOLの悪習。
867 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 06:24:34 ] >>865 そういう話はマ板向きじゃないのだろうか。 まあそれはそれとして、シェルスクリプトなんてやってることは 一般のアプリケーションプログラムに比べて小さくて特定されてるんだから 修正するのは新しく作り直すのと同義だろ。 新規作成と同額でいいんじゃね? /etc/rc.d/並みの複雑怪奇なスクリプトだったらこの話はあてはまらないが、 そういうのはperl,python,rubyで書かないのが間違い。
868 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 21:10:59 ] echo "hoge" | read Hage echo $Hage これって読み込んでくれないの?
869 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 22:57:12 ] >>868 echo "hoge" | (read Hage) の状態になって、サブシェルの変数をセットして終わる。 echo "hoge" | (read Hage; echo $hage) zshなら大丈夫。
870 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 23:00:26 ] 読み込むよ。これ試して味噌。 -- echo foo | (read; echo $REPLY) -- って書くために検証してたら先を越されたw
871 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 23:37:59 ] >>869 ,>>870 thx. でもよくわからない。 #!/bin/sh alert --info "Whitch Resolution" "1600x1200" "1280x1024" "1024x768" >RES read Res <RES && rm RES echo "Resolusion is "$Res case "$Res" in "1024x768" ) echo "mode 1024 768 32" >/boot/home/config/settings/kernel/drivers/vesa ;; "1280x1024" ) echo "mode 1280 1024 32" >/boot/home/config/settings/kernel/drivers/vesa ;; "1600x1200" ) echo "mode 1600 1200 32" >/boot/home/config/settings/kernel/drivers/vesa ;; esac #shutdown これの$Resを得たいんだが、パイプで取得できないのかと思ってのですが。
872 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 00:04:03 ] できないからファイルに入れてるってことでしょ。 ただ、 Res=`alert ...` とすりゃいいのにとは思う。
873 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 00:25:29 ] >>872 Res=`alert --info ・・・・`でいきます。 Res= `じゃダメなのか、なるほど。
874 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 06:03:17 ] bashで乱数を用いてで数値3桁(000〜999)を表示させるにはどうしたらいいでしょうか? hoge=`${RANDOM} | cut -c 2-4 ` echo $hoge としてるんですがこれだと表示が2桁や1桁のときに桁数が揃わなくて困っております。
875 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 09:33:30 ] pりんtf
876 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 09:39:08 ] ”パーセントさんエスバックスラシュn” $ほげ
877 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 09:46:34 ] あっ、間違った、>>875 ,876は忘れてくれ。
878 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:51:46 ] あってんじゃん。 printf "%03d\n" $hoge
879 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:32:18 ] おっ、惜しかった、0が必要なんですね。勉強になった。
880 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:39:35 ] 質問した本人はどこに消えたんだろう?
881 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:08:31 ] /dev/nullの闇に呑まれたのだった・・・
882 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 10:26:59 ] 歓呼工面でなかってよかったのう。
883 名前:デフォルトの名無しさん [2008/05/22(木) 20:42:02 ] 今、プロセス監視ツールについて調べてまして プロセスに常駐するシェルを作りたいと思ってます。 ps -ef | grep sh を実行して、常時起動しているシェルというのは、 どうやって書けばいいのでしょうか。 また、この際に表示されるPIDは、常時同じ値にしたいと思ってます。 アドバイスお願いいたします。
884 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 20:58:01 ] シェルをつくるのですか。 jubilo.cis.ibaraki.ac.jp/~isemba/PROGRAM/CPROG/611.pdf ここいら辺を参考に頑張ってください。
885 名前:デフォルトの名無しさん [2008/05/22(木) 21:24:52 ] すみません。プロセスが常駐するシェルスクリプトを 作りたいのです。
886 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:33:17 ] #!/bin/sh while :; do :; done
887 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:43:42 ] OSによってはwatchというコマンドがあるかもしれない。 watch ps -ef なければ>>886 のdoの中身の:をps -ef ; sleep 10とかにすればいいんじゃね。
888 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:05:10 ] >>886-887 ありがとうございます 今すぐ試せないんですが、Watchやってみます。 sleepはやってみたんですが、シェルスクリプトが プロセスとして残るのではなく、sleepコマンド自体の プロセスとして残ってしまいました。 >>886 は無限ループというのは分かるんですが、 負荷が上昇したりしないでしょうか。
889 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:18:08 ] sleepは当然残るけど、親プロセスであるshも残ってないか?
890 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:24:06 ] #!/bin/sh kill -19 $$
891 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:36:54 ] >>889 それが残らなかったんです。linuxなんですが・・・。 ディストリビューションは多分centosです。 SOLARISはshが出てたんですが・・
892 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:46:28 ] つか、常駐して、何させたいのよ
893 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:11:31 ] プロセス監視ツールの検証をしたいんです
894 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:36:36 ] シェルスクリプトは監視される側? 多少負荷あがっても無駄にループしてりゃいいじゃん 気になるなら、: を sleep 1 にでも変えて
895 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:37:20 ] DOSのTSRみたいなのを作りたいってことかと思ったら違うのか。 もしかしてcronで定期実行させる方が目的にかなってたりしないか?
896 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 01:39:00 ] sleepしている間に食うリソースってプロセステーブル1エントリと、 コードが常駐する分のメモリ?
897 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 01:46:18 ] あと標準入出力&エラー出力のファイルデスクリプタとPTYのマスター&スレイブ (閉じてなければだが)
898 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 01:54:29 ] >>895 私もそう(TSR)思ってた上で冗談のつもりで>>890 を書いたんだが実はそういうのが欲しかったとは。 だまされた気分だぜ。
899 名前:デフォルトの名無しさん [2008/05/24(土) 01:44:25 ] エロイ人教えて $1が a b $2が c d 出力結果 a c a d b c b d どうやるの?
900 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 03:42:38 ] >>899 まず出力結果に至るルールを書かんかい 求めたいものが直積とは限らんからな
901 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 07:53:29 ] A="a b" B="c d" for a in $A; do for b in $B; do echo $a $b; done; done
902 名前:899 [2008/05/24(土) 12:08:55 ] >>900 やりたいことは"シェルをテストする"ためのシェルを考えてる。 テストしたいシェルに引数を与えて出力結果を別ファイルに出力する。 シェルはkシェル。 OK? >>901 サンク あと、引数にスペース(空白)も含めたいんだけど A=a b スペース(空白) A=c d スペース(空白) 出力結果 a c a d a b c b d b c d よろしくです
903 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:14:32 ] A="a:b::" B="c:d::" OLDIFS=$IFS IFS=: for a in $A; do for b in $B; do echo $a $b; done; done IFS=$OLDIFS 頭に蛆でもわいてるのか
904 名前:899 [2008/05/24(土) 12:37:21 ] >>903 おぉーはぇー サンク! おめ〜口は悪いけど面倒見の良いエロイ椰子だな ありがと!
905 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 07:32:25 ] scriptの中から呼び出されたprogramの処理が終了していることを 知るにはどうしたらいいですか?
906 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 08:09:45 ] kill -0 $! && echo alive
907 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 08:55:38 ] thx!
908 名前:デフォルトの名無しさん [2008/05/25(日) 23:52:01 ] root以外で動かすスプリクト内で特定のファイルをchownで所有者を 変更したいんだけsudoもexpectも使わずにできる?
909 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:07:45 ] Linuxのようにスクリプトのsetuidを無視する環境なら、 スクリプトを呼ぶだけの実行ファイルを作ってそっちをsetuidする。
910 名前:デフォルトの名無しさん [2008/05/29(木) 23:13:02 ] tarファイル内のデレクトリとかファイルをリネームできる? あるいはリネームしながら展開できる?
911 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 01:05:16 ] >>910 スレ違い。アーカイバ関連のスレで訊くべし
912 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 01:17:12 ] この板的には、tarのフォーマットを調べて、 リネームするツールを作ろうという趣旨かも。 しかしスレ違いか。
913 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 01:42:54 ] 特定の名前対応付けファイルにしたがって、 一旦目的のファイル/ディレクトリを展開して mvで目的の場所にリネーム移動させるものを つくるというスクリプトならかろうじて・・・ そこまでの意図はないと思うが。
914 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 01:51:43 ] ヘッダー情報だけ書き換えて展開は本物のtarにやらせれば良い。 前の勤務先で作ったときは50行(perl)くらいで出来たような気がする。
915 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 20:04:48 ] 文字列中のスペースをエスケープシーケンス付けて"\ "に変換する スクリプトを作りたいのですが、どうしたら良いでしょう? sed を使うと連続スペースを 1つのスペースとして扱われてしまい上手く行きません。 "sample sample"(スペース2以上) っていう文字列を "sample\ \ sample"にしたい。
916 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 22:28:33 ] ~$ echo "sample sample" | sed -e 's/ /\\ /g' sample\ \ sample
917 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 22:44:45 ] >916 あれ、それで行きます?ってか家のCygwin上でも出来てるな これでも出来なくて、2〜3時間いろいろ試して、うんうん唸ってたんですが、 バージョンや処理系で動作がちがうとかないですよね・・・ 月曜にリトライします。なんか馬鹿やったかな?
918 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 22:51:54 ] >>917 gが付いてなかったんじゃないのか?
919 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 23:25:04 ] いや、そういうのではなく、記憶が確かなら echo "sample sample" | sed -e 's/ /:/g' (sampleの間は連続半角スペースね) ってやったら、 "sample:sample" スペースを一つとして扱われた みたいな結果しか帰ってこなかったんだけど。 何かを間違えたんだろうね多分。なにを間違えたやら。
920 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 02:59:01 ] ubuntu@ubuntu-desktop:~$ echo "sample sample" | sed -e 's/ */:/g' sample:sample
921 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 03:01:29 ] 勘違いす。>>920 は消去。
922 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 03:30:54 ] #!/usr/bin/fontforge 仲間に入れてもらえますか?
923 名前:デフォルトの名無しさん [2008/06/04(水) 22:42:10 ] 相談に乗ってちゃぶ台! 任意のディレクトリ下の全てのファイルの更新日時を フルパスで1行づつ取得したい。また更新日時をyyyymmdddHHMMSSで 取得したい。 例) /home/usr01/aaa/bbb.txt 20080101125525 /home/usr01/aaa/ccc.tar 20080123195530 /home/usr02/ddd.txt 20070811210121 /home/usr03/eee/fff/ggg/hhh/jjj.cfg 20060301042133 よろしくお願いします、みなさん
924 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:14:40 ] 簡単すぐるからパス
925 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:59:00 ] OSによっては簡単すぐるけど、一般にはそうでもないし、perlが最適だったりもする >>923 OSを明かした方が適切な回答があるかもよ
926 名前:デフォルトの名無しさん [2008/06/05(木) 00:09:17 ] > 924,925 レス、さんく とりあえず find でフルパスは取得できよ。 あと、タイムスタンプなんだよね。 OSはAIXでkshでつ
927 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:22:49 ] AIXは、statもないし、lsに-Tもないんじゃないかな。 テキストファイルだけなら diff -c で /dev/null と比較して、 先頭の行を加工すれば何とか取得できるかもしれない。 けど、perl をすすめる。
928 名前:デフォルトの名無しさん [2008/06/05(木) 01:39:28 ] >927 ありがと よく似たコマンドでistatってのがあったけど 月表示が英語なのよ・・・ $ istat bbb デバイス 10/8 上の Inode 89 ファイル 保護 : rw-r--r-- 所有者 : 8(*****) グループ : 0(system) リンク・カウント : 1 長さ 4 バイト 最後の更新: Thu Jun 5 01:35:24 JST 2008 最後の修正: Thu Jun 5 01:35:24 JST 2008 最後のアクセス: Thu Jun 5 01:35:24 JST 2008
929 名前:デフォルトの名無しさん [2008/06/05(木) 02:12:17 ] ひとつ教えてください。 ファイルからデータを収集して txtファイルに出力するようなシェルを作成しているのですが 整形がうまくいきません。 touch test.txt echo "ABCDEF 1_0_2_3" >> test.txt echo "LMN 3_2_4_5" >> test.txt 当然中身は ABCDEF 1_0_2_3 LMN 3_2_4_5 となるんですが ABCDEF 1_0_2_3 LMN 3_2_4_5 としたいんです。 何かいい方法ありませんか? tabのような整形方法を考えたんですがうまく揃わないので 文字数指定する方法あれば教えていただきたいんですが。。。 (C言語のprint文での %10s のようなのができれば理想ですが)
930 名前:デフォルトの名無しさん [2008/06/05(木) 02:12:56 ] ずれーたorz 番号のところが揃うようにしたいです。 ご教授ください。
931 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:14:20 ] なら、12種類しかないんだから、caseで分岐して、 一致した月の数字を返すっていう関数書けばいいんじゃ?
932 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:20:01 ] >>929 OSによっては、まさにprintfがあるけどな。
933 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:24:10 ] # echo "ABCDEF 1_0_2_3" | gawk "{printf(\"%10s %s\n\",\$1,\$2);}" > test.txt # echo "LMN 3_2_4_5" | gawk "{printf(\"%10s %s\n\",\$1,\$2);}" >> test.txt # cat test.txt ABCDEF 1_0_2_3 LMN 3_2_4_5
934 名前:デフォルトの名無しさん [2008/06/05(木) 02:24:20 ] ファイルの比較するシェルを作りたいのですが、 うまくいきません。 file_list.txt -- 内容 -- ABC DEF GHI このファイルとフォルダ内の内容が一致するかチェックしたいのですが 何かいい方法ありませんか? ls -Rをtxtファイルに吐き出してcmpを使う方法と read line使った後ls -Rとgrepをつかって比較する方法を思いついたのですが、 もっと綺麗な方法ってあるでしょうか?
935 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:25:25 ] busyboxにprintfあったよ・・・・・orz
936 名前:デフォルトの名無しさん [2008/06/05(木) 02:28:49 ] >>932 マジですかorz 調べたりなさ杉。ありがとうございます。 >>933 今現在確認できないので研究室についたら試してみます ありがとうございました。
937 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:35:12 ] おまえら、いいかがんシェルを作るな。シェルスクリプトを作れ。
938 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 04:38:56 ] Cに似たシェルスクリプト言語ってある?
939 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 08:29:08 ] cshでスクリプトは書くな
940 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 08:41:31 ] 外部コマンド呼ぶのにいちいちsystem()とか、それさえなくて fork()とexecve()を駆使しなきゃいけないようなスクリプト言語だとしたら、 かなりいや。
941 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 09:05:21 ] while read Filenm do if [ -e $Filenm ] ; then echo $Filenm" ○" else echo $Filenm" ×" fi done <file_list.txt
942 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:45:57 ] cat file_list.txt | group { Test-Path $_ }
943 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 09:47:16 ] >>940 どうして?
944 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:28:20 ] インタープリタ言語はスレ違いでしたね スレタイがシェルスクリプトだもんな すっかり勘違いしてた
945 名前:デフォルトの名無しさん [2008/06/07(土) 18:48:20 ] cpioのマルチボリューム保存で1本目が終わると 2本目の前にデバイス名の入力を施すメッセージが表示されます。 その際、そのメッセージ(多分、標準エラー出力)を表示させないで 自前の処理で「2本目の保存を行いますか?(y/n)」みたいに行いたいのです。 標準エラー出力をどう扱うかが肝だと思うのですが、良いアイデアが浮かびません。 何か良いヒントはありませんでしょうか?(Bシェル(OS:Solaris))
946 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:35:53 ] つ expect
947 名前:デフォルトの名無しさん [2008/06/16(月) 11:34:15 ] #!/bin/csh -f set s=$1 set t=$2 set f=$3 cat $f | tail +$s | head -$t exit 0 echo ------------------ 以上を改良しろ、と言われました。みなさんならどうしますか?教えて下さい。
948 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 11:47:55 ] #!/bin/csh -f tail +$1 $3 | head -$2
949 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:01:05 ] rm -f /bin/csh
950 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:49:14 ] >>949 Permission denied
951 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 14:14:52 ] 以下のスクリプトで echo をした時に AAAeo kakikukeko sasisuseso AAAituteto naninuneno hahihuheho と表示されるのですが どうすれば tatituteto naninuneno hahihuhehoAAA と表示できるのでしょう? 環境は実行シェルはbashです FUGA="'AAA'" awk '{print;}' hoge.txt | while read LINE; do MOGE=`echo "$LINE" | cut -d , -f 2-` echo "$MOGE""$FUGA" done hoge.txt a,aiueo kakikukeko sasisuseso b,tatituteto naninuneno hahihuheho
952 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 14:55:37 ] >>951 やりたいことが判らん。awkを使う理由が判らん。手元で再現できん。 つーか、折角awkを使うならawk -F, '{print $2 "AAA";}'じゃいかんの?
953 名前:951 mailto:sage [2008/06/16(月) 15:09:30 ] >>952 レスありがとうございます やりたい事としては ファイルから1行読み込んで1行をパースし FUGAと連結した文字列を別のコマンドを実行させたい です 1行の内容としては aaaaa,hogehoge mogemoge aiueo という風に書きましたが実際には aaaa,SQL文 という感じで半角スペースやカンマが入ります
954 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 15:16:15 ] >>953 他人の話をよく聞きなさいって言われたことないか? >952をよく読んで、為すべきことを為してから出直せ。 それから、自分の書いた文章を読み返す癖をつけた方がいい。 とてもじゃないが、他人に読んでもらう文章になっていないぞ。
955 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 15:48:40 ] >>954 >>952 に書いてある内容は理解しています MOGE=`echo "$LINE" | cut -d , -f 2-` の代わりとなる部分だと言うことは解っているのですが >>953 にも書いてある通りカンマ等が入ってしまう為記述が簡単な MOGE=`echo "$LINE" | cut -d , -f 2-` を選びました 951にカンマ等が複数入る可能性があるという事を 書かなかったのはすみませんでした
956 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 16:11:07 ] cut -d',' -f2-
957 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 16:18:10 ] ~> L="123,uio poi" ~> LB=`echo $L | cut -d',' -f2-` ~> echo $LB uio poi ~>
958 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 17:05:34 ] 違ったか・・・
959 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:03:53 ] tr -d '\015' < hoge.txt | awk ...
960 名前:デフォルトの名無しさん [2008/06/17(火) 11:26:10 ] #!/bin/csh -f set com=$0 if ($#argv < 1 || $#argv > 3) then echo Usage:$com start_line total_lines '[file_name]' exit 1 endif if ($#argv == 2) then set s=$1 set t=$2 tail +$s | head -$t else set s=$1 set t=$2 set f=$3 cat $f | tail +$s | head -$t endif exit 0 echo ------------------ これだとエラーがでます。どなたか改良してください。お願いします。
961 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:27:38 ] 酷いマルチ
962 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 13:28:46 ] bashで while read LINE; do echo $LINE done < ファイル とするとファイルに含まれてるタブ文字が 半角スペースに変換されて表示されるのですが そのまま取り出したい場合どうすればいいのでしょう? cat ファイル | whileやfor LINE in `cat ファイル`等はやってみました