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