这是我的代码:
ifelse(v1 > v2 - 5, seq_along(v1), 0)
# [1] 1 2 3 0
但我不知道如何只比较两个文件名' *'部分。它总是回复
#!/bin/bash
for file1 in
/net/zmf8/cb/37/lxy161830/work/target_readcount/*.readcount.txt;
do
for file2 in /net/zmf8/cb/37/lxy161830/work/nontarget_readcount/*.nontargetreawdcount.txt;
if [ $( basename${file1:0:1} ) == $( basename${file2:0:1} ) ];then
cat $file1 $file2 > '*.readcount.txt'
fi
done
答案 0 :(得分:1)
你的内部循环需要一个do
和一个done
。我提出了一个编辑。
如果您只想跳过将同一文件与自身进行比较,可以试试这个:
case $file1 in
$file2) continue;;
esac
虽然在阅读时,文件名(甚至只是基本名称)永远不会发生碰撞
由于点,*.nontargetreadcount.txt
永远不会匹配*.readcount.txt
。
另外,我认为您的输出文件名中不需要*
。也许像是
cat $file1 $file2 > /tmp/$( basename $file1 ).$( basename $file2 )