我是Unix的新手我有一个包含文件名列表的文件。我试图复制同一目录中的每个文件,但具有不同的扩展名。它不起作用。任何人都可以告诉我为什么我的代码是吼叫csl_nl.sts是其他文件名称的文件?
#!/bin/csh
set files = ("csl_nl.sts")
foreach file ('cat files')
echo "Copying" $file "to" $file.cdc
cp $file $file.cdc
end
exit 0
答案 0 :(得分:2)
答案 1 :(得分:2)
这对我有用
#!/bin/csh
foreach file (`cat csl_nl.sts`)
set a=`echo $file | awk -F"." '{print $1}'`
echo "$a"
end
答案 2 :(得分:0)
#!/bin/ksh
OLD_EXTN=old
NEW_EXTN=new
cat csl_nl.sts | while read line;
do
if [ ! -f $line];
then
echo $line does not exist ;
else
newfn=$(dirname $line)/$(basename $line .$OLD_EXTN).$NEW_EXTN
echo Copy from $line to $newfn
cp $line $newfn;
fi
done
答案 3 :(得分:-1)
不能说我熟悉(t)csh,但是,这是强制性的bash示例:
#!/bin/bash
for file in `cat csl_ns.tst`; do
echo $file " -> " $file.cdc
cp $file $file.cdc
done
取决于输入文件的格式,但如果它们被空格或行分隔,则应该有效。
答案 4 :(得分:-1)
看看这是否有帮助:
#!/bin/csh
set files = ("abc")
foreach file (`cat $files`)
set ext = ("cdc")
set file2 = "$file.$ext"
echo "Copying" $file "to" $file2;
cp $file $file2;
end
exit 0