0

テキストファイルのリストに対してbashスクリプトを実行し(forループを使用していると思います)、stdinからのテキストファイルと同じパスに拡張子を加えたファイル(たとえば、.txtまたは.sam、またはstdinパスの最後に〜を追加して、異なるものにします)。

4

1 に答える 1

4

さて、リストが長すぎないと仮定すると、次のように始めることができます

  for i in `cat list`
  do
      # do stuff here
  done

リストが長すぎてコマンドラインが長すぎるリスクを冒すのに十分な長さの場合は、しばらくの間バリアントがあります

  cat list | while read i
  do
       # do stuff here
  done

basename(1)を使用してファイル名を作成し、古い拡張子のサフィックスを取り除くことができます。たとえば、.txtから.bakを使用します

  `basename .txt ${i}`.bak

dirname(1)を使用してパス部分を取得できます

マクロは早期に展開されるため、変数でコマンドラインを作成して展開するだけで済みます。ここで、opとnpはパス名です

   command < $op > $np

素敵なオンラインブック、これ以上をカバーするbash AdvancedScriptingGuideがあります。

于 2012-04-11T16:48:36.000 に答える