
複数のファイルをdiffで比較するために以下のシェルを作成しましたが
diff: 「ファイル名」の後のオペランドがありません
とエラーが表示されてしまいます。
htmlディレクトリとhtml_bkディレクトリ内にある
ファイルを比較する処理になります。
========================================
find ./html -name *.html -type f |
while read f
do
echo $f | sed 's/html/html_bk/g' $temp
diff $f $temp >> diff.txt
done
======================================
$tempの中身はhtml_bkと変更されていました。
原因が分かる方がいましたら教えてください。
No.2ベストアンサー
- 回答日時:
> htmlディレクトリとhtml_bkディレクトリ内にある
> ファイルを比較する処理になります
diff -r html html_bk
で一発なんですけど....
このシェルスクリプトを完成させるなら
# -nameで*を使いたいときは""で括る
find ./html -name "*.html" -type f |
while read f
do
# 実行結果を変数に取り込むならバッククオートを使う
# 先頭が必ず ./html/ になるから、htmlを置き換えればいいのだけど、
# より正確にするなら、こんな感じ
temp=`echo $f | sed 's|^\./html/|./html_bk/|'`
# ファイル名の空白が含まれることも考慮して、""で括る
diff "$f" "$temp" >> diff.txt
done
kmeeさん、返答ありがとうございます。
教えて頂いたとおりに書いたら動きました。
それに、-rオプションという便利なものがあったんですね。
丁寧に教えてもらったおかげで注意する点や勉強不足がはっきりと
分かりました。
ありがとうございました。
No.1
- 回答日時:
いろいろ問題あるなぁ....
・「$tempの中身はhtml_bkと変更されていました。」と書かれていますが, temp を変更している部分が見当たりません. 「更新されていた」というのはどのように確かめたのですか?
・*.html はクォートしないとまずい
・sed で置換する時になぜ g をつけている?
・そもそもこれはシェルスクリプトであってシェルではない
この回答への補足
Tacosanさん返答ありがとうございます。
変更内容は、echo $tempで画面に出力させて確認したのですが
確認の方法が間違っていましたでしょうか?
htmlのクウォーとsedのgに関しては、記述が間違っておりました。
原因が分からなかったので、いろいろ試していた際に間違った記述をコピーしてしまいました。
シェルについては、痛いご指摘です。
何せほとんど書いたことがありませんので良くわかっておりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
lang 英語と日本語など混ざる時は
-
サブドメインでメインドメイン...
-
DAP粉末?
-
相対パスから絶対パスの取得
-
見れる方・・
-
風船のようなもの
-
htmとhtmlの違い
-
フォルダの中の特定のファイル...
-
Excel VBA :URLの中で変数を使...
-
ドライアイスの持続時間
-
相対パスのピリオドを書かない...
-
京都駅から延暦寺へのアクセス
-
Excelについて質問です。 https...
-
HTMLからフォルダを開きたい
-
ページの途中にリンクするとそ...
-
iPadの標準ブラウザでローカルH...
-
VBA URLDownloadToFileについて
-
form action="#"
-
【HTML】1クリックで複数ファイ...
-
Excelで、社外秘(閲覧のみ)と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
見れる方・・
-
lang 英語と日本語など混ざる時は
-
Excel VBA :URLの中で変数を使...
-
javaでhtmlファイルを開く方法
-
ベーシック認証時、キャンセル...
-
アクオスケータイ4、アクオス...
-
ファーストフード
-
リフレッシュタグを使うべきか...
-
アクオスケータイ4、アクオス...
-
livedoor のブログで、トップペ...
-
メール本文に変な文字が
-
トップページの確認お願いした...
-
ポリカに漆(うるし)を塗る
-
どっちの料理ショーで
-
日本語ファイル名を持つURLの30...
-
htmとhtmlの違い
-
ドライアイスの持続時間
-
ユーキャンのCMに出てくる男優さん
-
SATA AHCI モード
-
ゲームプログラマーになるため...
おすすめ情報