s***e 发帖数: 284 | 1 【 以下文字转载自 Programming 讨论区 】
【 原文由 shuke 所发表 】
呵呵,很简单的。我有可执行程序a,执行格式为
a f.input f.output
我一个目录下有10000个input文件,怎么写一个shell
执行a,把这些文件全部转化为output文件
谢谢。 |
s**s 发帖数: 242 | 2 files=`ls *.input`
for ifn in $files
do
ofn=`echo $ifn|sed -e 's/\.input/\.output'`
a $ifn $ofn
done
【在 s***e 的大作中提到】 : 【 以下文字转载自 Programming 讨论区 】 : 【 原文由 shuke 所发表 】 : 呵呵,很简单的。我有可执行程序a,执行格式为 : a f.input f.output : 我一个目录下有10000个input文件,怎么写一个shell : 执行a,把这些文件全部转化为output文件 : 谢谢。
|
c**o 发帖数: 166 | 3 How about this one?
#!/bin/sh
for i in `ls *.input`
do
head=`echo $i | awk -F"." '{print $1}'`
a $head.input $head.output
done
hehe, did not test it. Use it at your own risk.
【在 s***e 的大作中提到】 : 【 以下文字转载自 Programming 讨论区 】 : 【 原文由 shuke 所发表 】 : 呵呵,很简单的。我有可执行程序a,执行格式为 : a f.input f.output : 我一个目录下有10000个input文件,怎么写一个shell : 执行a,把这些文件全部转化为output文件 : 谢谢。
|
c**o 发帖数: 166 | 4
I would add /g there. That is:
ofn=`echo $ifn|sed -e 's/\.input/\.output/g'`
【在 s**s 的大作中提到】 : files=`ls *.input` : for ifn in $files : do : ofn=`echo $ifn|sed -e 's/\.input/\.output'` : a $ifn $ofn : done
|
p*a 发帖数: 592 | 5 又到了我的强项,哈哈
ls -1 *.input | awk '{print ("a ")($1)(" ")($1)}' | sed 's/input$/output/g' |
sh
【在 s***e 的大作中提到】 : 【 以下文字转载自 Programming 讨论区 】 : 【 原文由 shuke 所发表 】 : 呵呵,很简单的。我有可执行程序a,执行格式为 : a f.input f.output : 我一个目录下有10000个input文件,怎么写一个shell : 执行a,把这些文件全部转化为output文件 : 谢谢。
|
c*****t 发帖数: 1879 | 6 Makefile is a good tool as well:
INPUT=$(wildcard *.input)
OUTPUT=$(INPUT:.input=.output)
%.output: %.input
@a $< $@
all: $(OUTPUT)
【在 s***e 的大作中提到】 : 【 以下文字转载自 Programming 讨论区 】 : 【 原文由 shuke 所发表 】 : 呵呵,很简单的。我有可执行程序a,执行格式为 : a f.input f.output : 我一个目录下有10000个input文件,怎么写一个shell : 执行a,把这些文件全部转化为output文件 : 谢谢。
|