0

OIS001_OD_EYE_MIC.pngという名前のディレクトリにファイルがあります-OIS176_OD_EYE_MIC.png

この正規表現で示されているように、番号1-99の抽出は簡単です。1-88でディレクトリを半分に分割したいと思います。

なんで?だから私は圧縮するファイルの2つの偶数セットを持つことができます

ls | sed  -n '/^[A-Z]*0[0-9][0-9].*EYE_MIC.png/p'

これが0-99を取得する私の試みです。1-88、おそらく89-176を取得するのを手伝ってもらえますか?

4

4 に答える 4

5

{start..end}次のような範囲を使用できます。

echo OIS00{0..88}_OD_EYE_MIC.png

に拡大します

OIS000_OD_EYE_MIC.png OIS001_OD_EYE_MIC.png [...] OIS0087_OD_EYE_MIC.png OIS0088_OD_EYE_MIC.png

bashのmanページでBraceの拡張を探してください

于 2012-10-02T07:08:05.790 に答える
4

新しい十分なbashで:

ls OIS0{01..88}_OD_EYE_MIC.png
于 2012-10-02T07:06:22.743 に答える
1

正規表現では、特定の数値範囲の文字列がどのように見えるかを考慮する必要があります(特定の数値範囲を直接一致させることはできません)。1-88:

/^[A-Z]*(00[1-9]|0[1-7][0-9]|08[0-8]).*EYE_MIC.png/

88-176の場合:

/^[A-Z]*(089|09[0-9]|1[0-6][0-9]|17[0-6]).*EYE_MIC.png/

ここにいくつかの例があります。

于 2012-10-02T06:59:09.940 に答える
1

パイプで並列化された代替案は次のとおりです。

ls -v | columns --by-columns -c2 | tr -s ' '   \
| tee >(cut -d' ' -f1 | tar cf part1.tar -T -) \
      >(cut -d' ' -f2 | tar cf part2.tar -T -) > /dev/null

ファイルの名前に空白が含まれている場合、このメソッドにはさらに作業が必要です。

アイデアは、ファイルリストを列に並べ、teeそれを個別の圧縮プロセスに多重化するために使用することです。

columnsプログラムはパッケージに付属していますautogen(少なくともDebianでは)。

于 2012-10-02T09:49:40.967 に答える