
cshが詳しい方は教えてください
cshで、ソラリスOS上にtmp.outってのファイルを行ずつに読み込みしたいんですが
foreach f_list("`cat tmp.out`")
echo "${f_list}"
end
tmp.outの内容は以下です。
test3
if ( 0==mencmp("H",HOSTN,10) {
test345
testddd
…
2行目の最後"{"っての文字があれば、実行すると、うまくいけませんが。
『}が足りません。』ってのエラーになっちゃう、
"{"がcsh中で、特殊の文字と思ってますが、cshが詳しいかは対処方法を教えてくれませんか
以上です。よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
> 一応tcshに試しましたが、やっぱりだめでした。
> エラー内容:間違った}です.
おかしいですね?
こちらのtcsh(ver.6.17.00と6.15.00)ではtmp.outと同じ内容が表示されましたが。
tcsh ~.csh
とかやって、ちゃんとtcshで動かしてますか?
対話シェルはtcshにしたけど、1行目が
#!/bin/csh
とかなってるのを
./~.csh
で実行したとか、
csh ~.csh
と実行したとかはないですよね?
# もしかしたら、古いtcshでは同じ現象が起るのかもしれませんが、確認はしていません。
> プログラムの実現の機能としてはファイル(temp.out)を行ごとに読み込み、指定されたキーワードがありましたら、
> その行の内容を別のファイルに出力する機能です。
単純に
grep 'キーワード' tmp.out > t.out
ではだめですか?(キーワードに正規表現の特殊文字が含まれていないとして) awk使うにしても、こんなまわりくどいことしなくても
awk '/キーワード1/{print} /キーワード2/{print} ' tmp.out > t.out
とかできますし。
kmeeさん
いろいろご回答してくれて、誠にありがとうございました
結局、一部の計算機能をやめて、内容だけ、ファイルに出力する方式に修正しました
『grep 'キーワード' tmp.out > t.out』のように修正しました
改めてありがとうございました。
No.3
- 回答日時:
SunOS 5.8のcshで確認しました。
これは、バグといってもいい「仕様」なのでしょうね。
おそらく、"${f_line}"を展開した
echo if ( 0==mencmp("H",HOSTN,10) {
という行全体を eval している気がします。
対処法は次のものしか思いつきませんでした。
・他のシェルを使う
Bsh系にしましょう。
どうしてもCsh系を使いたいなら、せめてtcshを。(すくなくとも、この現象は発生しません)
・根本的にやりかたを見直す
1行ずつなんかの処理をしたいのでしたら、grep,sed,awk,perl、あるいはこれらの組み合わせで大抵のことはできます。
この回答への補足
kmeeさん
詳しくご回答ありがとうございました
現在のところで、Bシェルに変更して、時間が許しませんが
一応tcshに試しましたが、やっぱりだめでした。
エラー内容:間違った}です.
それとも awkで試しましたがやっぱりだめでした。
set i=1
set maxGyo = `awk 'END{print NR}' temp.out`
while ($i <= $maxGyo)
set line = `awk "{ if (NR==$i) print}" temp.out`
echo "$line"
@ i++
end
エラー内容:}が足りません。
プログラムの実現の機能としてはファイル(temp.out)を行ごとに読み込み、指定されたキーワードがありましたら、
その行の内容を別のファイルに出力する機能です。
元々のプログラムは下記のものです。
foreach f_list("`grep -n キーワード temp.out`")
echo "${f_list}" >> t.out
end
何かご存知でしたら、是非お願い申し上げます
kmeeさん
詳しくご回答ありがとうございました
現在のところで、Bシェルに変更して、時間が許しませんが
一応tcshに試しましたが、やっぱりだめでした。
エラー内容:間違った}です.
それとも awkで試しましたがやっぱりだめでした。
set i=1
set maxGyo = `awk 'END{print NR}' temp.out`
while ($i <= $maxGyo)
set line = `awk "{ if (NR==$i) print}" temp.out`
echo "$line"
@ i++
end
エラー内容:}が足りません。
プログラムの実現の機能としてはファイル(temp.out)を行ごとに読み込み、指定されたキーワードがありましたら、
その行の内容を別のファイルに出力する機能です。
元々のプログラムは下記のものです。
foreach f_list("`grep -n キーワード temp.out`")
echo "${f_list}" >> t.out
end
何かご存知でしたら、是非お願い申し上げます
No.1
- 回答日時:
特殊文字なのは{じゃなくて$の方じゃないですか?
つまり2行目を
echo "$${f_list"
としてみたらどうかって事ですが。
この回答への補足
D-Matsuさん
回答ありがとうございました。
試しましたが、やっぱりだめでした
grep.out4中の最後の{を切ると、旨くいきました
やっぱり、ファイル中の{の問題と思ってます。
それで、{の後ろに}を付けて、試して、旨くいきましたが、表示するとき、最後の二つ文字{}が表示できなくなりました。
補足:
いろいろ試しましたが、cat,grepのコマンドの問題ではありません。
問題はバッククォーテーション(``)でcatを囲まれて、旨くいけません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 11:05
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- Perl perlについての質問 2 2022/10/17 15:25
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LinuxでWine使うとどのくらいWi...
-
Linuxでブートディスクの交換後...
-
Core 2 Duo の古いパソコンに最...
-
apacheでリバースプロキシを設...
-
CentOSが起動時にフリーズ
-
WineのRufusでデバイスを検知す...
-
Ububtuでファイル共有できない...
-
Ubuntuサーバーでメールを受信...
-
私のパソコンでVirtualBoxは使...
-
ubuntuのシャットダウンが進ま...
-
ubuntu(linux)のシャットダウン...
-
ubuntu 24 へのCanon 複合機ス...
-
Postfixでドコモメールに送信す...
-
「/var/log」内のログの削除の...
-
ssl_request_logの必要性について
-
Linux のシェルスクリプトの強...
-
windowsxpと同じくらい軽いLinu...
-
ubuntuのターミナルで書いたコ...
-
Lubuntuでとにかく軽量のバージ...
-
unutu24でDISKINFOを読み取る方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド終了ステータス
-
実行中のシェルスクリプト自体...
-
diskpart でパーティションの一...
-
FTPコマンドの戻り値について
-
cshで変数名の入れ子ができない
-
cshの標準出力を制御したい
-
cronでftp自動転送を行いたい
-
UNIX Cシェルで実数の比較
-
コマンドでマクロの実行
-
ping -cコマンドで指定した個数...
-
cshが詳しい方は教えてください
-
kshでのcase文条件範囲について
-
carbon化ってなんですか?
-
telnet へのパイプができないです
-
cygwinシェルスクリプト内での...
-
Mac OSXのターミナルでemacsを起動
-
シェルスクリプトからPHP実行
-
楽天への商品情報の自動更新
-
複数の処理を順番にログアウト...
-
Linuxでmakeが実行出来ません
おすすめ情報