私はかなりスクリプトに慣れていますので、簡単にしてください。私はこれに関連しているが、私の問題を正確にカバーしていない別のフォーラムがあることを認識しています。ディレクトリ名へのファイル名の一致に基づいてディレクトリへのファイルのマージ
私はファイルを含むディレクトリと、各ファイルを移動するのに必要な対応するフォルダを含む別のディレクトリを持っています。
DS-123.txt /DS-123_alotofstuffhere/
私は最初に、ファイル名の最初の6つの文字の一致に基づいて移動を自動化したいと思います:各ファイルには次のように先のディレクトリに対応しますディレクトリの6。
私はこれがあります。
filesdir=$(ls ~/myfilesarehere/)
dir=$(ls ~/thedirectoriesareinthisfolder/)
for i in $filesdir; do
for j in $dir; do
if [[${i:6} == ${j:6}]]; then
cp $i $j
fi
done
done
をしかし、私は、スクリプトを実行したときに、私は次のエラーを取得する:
es: line 6: [[_DS-123_morefilenametext.fasta: command not found
私は、Linux(スーパーコンピュータ上のどのバージョンがわからない、申し訳ありません)を使用しています。
"私はこれを持っている":ここでは
は@tripleeにより示唆されるように、配列を使用しないソリューションです。あなたのコードにどのような問題があるのかを記述し、それに関連する*具体的な質問をしてください。 – kaylum
'[['と ']]のあとにスペースが必要です。 'if [[$ {i:6} == $ {j:6}]];その後 ' – codeforester
私の答えは下記をご覧ください。私はそれを試して、それは動作します。 – codeforester