すべてのファイルをコピーしたい2桁の数字で始まり、後ろに下線が続きます。。以下のコードはファイルをKIRC
フォルダにコピーしません。
cp -R ~/KIRP/[0-9][0-9]_* ~/KIRC/
フォルダの内容の例KIRP
:
11_abc.py
9_efg.R
hij_12.csv
期待される出力: 11_abc.py 9_efg.R
ベストアンサー1
9_efg.R
前に数字が1つだけなので、パターンと一致しません_
。11_abc.py
しかし、それは。おそらくglob演算子をfish
サポートしていない[...]
シェルで試してみました。
_
名前が0から99の間の数字で始まり、数字を表すために使用される数字(000_x
、、1_y
を含む)が続くファイルをコピーするには、11_z
glob演算子を持つzshシェルを使用できます。
cp -R ~/KIRP/<0-99>_* ~/KIRC/
または
zsh -c 'cp -R ~/KIRP/<0-99>_* ~/KIRC/'
他の殻から。
bash
シェルを使用すると、次のことができます。
shopt -s extglob failglob
cp -R ~/KIRP/*(0)[123456789]?([0123456789])_* ~/KIRC/
0
sの後に1から9までの数字([1-9]
bashとは異なり、zshは通常数百の異なる文字と一致します)と0から9の間のオプションの数字が続く任意の数字と一致します。一致するものがない場合は、文字通り名前付きfailglob
ファイルをコピーしないでください。*(0)[123456789]?([0123456789])_*
次の種類のファイルの場合目次、ディレクトリとその内容の両方を再帰的にコピーしますR
。ファイル形式の除外目次、そしてzsh
:
cp ~/KIRP/<0-99>_*(^/) ~/KIRC/
(Bashにはそれに対応するものはありません)。
または、すべてのレベルのサブディレクトリにあるファイルをコピーしてください。~/KIRP
cp ~/KIRP/**/<0-99>_*(D^/) ~/KIRC/
(D
隠しディレクトリのコンテンツを除外するには削除してください)。