Bash:ファイルのリストを別のファイルに分割しますか?

Bash:ファイルのリストを別のファイルに分割しますか?

私のディレクトリにはいくつかのファイルがあります。たとえば、次のようになります。

data1.dat
data2.dat
....
data24678.dat    

別のコードを実行するには、ファイル名を含むテキストファイルが必要ですが、各テキストファイルを50個のファイルに分割する必要があります。たとえば、次のようになります。 File1.txt:

/PATH/OF/FILE/data1.data
/PATH/OF/FILE/data2.data
/PATH/OF/FILE/data3.data
......
/PATH/OF/FILE/data50.data

ファイル2.txt:

/PATH/OF/FILE/data51.data
/PATH/OF/FILE/data52.data
/PATH/OF/FILE/data53.data
......
/PATH/OF/FILE/data100.data

どんなアイデアがありますか? ?私は努力しています:

ls -1 | xargs -n 50 >> File1.txt

しかし、xargsコマンドで各「アイテム」を選択した人はわかりません。ありがとうございます! !

答え1

ls -1 | split --lines=10

ファイルを同じディレクトリに配置します。これは次の方法で回避できます。

ls -1 | (cd /where/ever; split --lines=10)

または別のファイル名を使用してください。

ls -1 | split --lines=10 /dev/stdin /path/to/splitfile.

答え2

次のことを試してください(splitほとんどのLinuxディストリビューションではデフォルトのGNUを使用して):

ls |
  sed "s:^:$(pwd)/:" |
  split -dl 50 --additional-suffix=.txt - /path/to/dest/File

関連情報