• ベストアンサー

Cシェルでの質問

シェルについての質問ですが、 1、nkdir /a/$b/$b`date+'%Y'` とディレクトリを作り 作成したディレクトリにファイルを移動したいのですが、 ディレクトリを作る際に、 /$bのしたに$bという名前のファイルしかでず、 うまく出来ません。 2、2つのファイル、a,bの差分をとるシェルを作りたいのですが、考えれば考えるほどどのような切り口で作ればよいか解らなくなっています。おそらくdiffコマンドを使うのでは?という所までは来ているのですが、その結果ファイルを使う必要があり、更に園ファイルを編集しなければならなく、訳がわからなくなっている状態です。 この2点、どちらかおわかりの方、どうかご教授のほどよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • tailkuppa
  • ベストアンサー率53% (52/98)
回答No.1

1. > nkdir /a/$b/$b`date+'%Y'` mkdir(ですよね?) では、2段階以上一度にディレクトリは作れません。 mkdir /a/$b mkdir/a/$b/$b`date +'%Y'` のように2回に分けてみてください。 2. 具体的にどのような差分を取り、どのように変更したいのでしょうか? diff コマンドでは、オプション指定することで、いろいろな形式でファイルの差分を取ることが出来ますので、とりあえずテストデータを作って、 diff ファイルa ファイルb diff -c ファイルa ファイルb diff -u ファイルa ファイルb などを実行してみてはどうでしょうか? 形式の種類についてはマニュアル(man diff) 等で見てください。 参考URL は GNU のdiff (linux では標準)のマニュアルです。 OSによっては、付属 の diff だともっと機能が少ない/異なるかもしれませんが、参考までに。 http://www.linux.or.jp/JM/html/gnumaniak/man1/diff.1.html

参考URL:
http://www.linux.or.jp/JM/html/gnumaniak/man1/diff.1.html

その他の回答 (2)

  • pikacchu
  • ベストアンサー率44% (11/25)
回答No.3

こんにちは。 1.mkdirコマンドの「-p」オプションを使用すれば多段階層のディレクトリが作成可能ですが。質問の意味を取り違えてるかも?です。   ちなみにSolaris、HP-UXはOKでした。 2.はtailkuppaさんの回答で十分ですよね?あと、「cmp」コマンド等もありますが。「man」コマンドにてマニュアルを参照してみて下さい。

回答No.2

> 1、nkdir /a/$b/$b`date+'%Y'` このとおりだとすると、(nkdir は mkdir のタイプミスとしても) date と + の間にスペースがありませんが、それが原因ではありませんか? > 2、2つのファイル、a,bの差分をとるシェルを作りたいのですが、 こちらは意味が不明です。どういう入力に対して、どういう出力を得たいのですか? diff a b > c sed xxx c > d とかですか?