私が作成しているシェルスクリプトに分割コマンドを使用しようとしていますが、--numeric-suffixesフラグを使用してファイル数が1から始まるようにしたいと思います。私は試みる:
split -a 1 -l 2 --numeric-suffixes=1 test.txt
しかし、私が得た結果は次のとおりです。
split: option `--numeric-suffixes' doesn't allow an argument
この問題を解決する方法がわかりませんが、--additional-suffixなどの他のフラグを試しましたが、それも機能しません。また、注 - フラグを含めないと、コマンドは正しく実行されます。どんな助けでも大変感謝します。 (私はUNIX初心者なので、親切にしてください)
split --version
出力split (GNU coreutils) 5.97
split --help
説明する-d, --numeric-suffixes use numeric suffixes instead of alphabetic
。
ベストアンサー1
この特別な場合(-l 2
)の場合、実際の内容の前に正確に2行(空白かどうかは重要ではありません)を追加することが解決策ですtest.txt
。これはすぐに実行できます。
これにより、0番目のファイルsplit -a 1 -l 2 --numeric-suffixes
に追加の行が含まれます。x0
ファイルを削除します。残りのx*
ファイルは使用したファイルと同じです--numeric-suffixes=1
。
(printf '\n\n'; cat test.txt) | split -a 1 -l 2 --numeric-suffixes
rm x0
アプローチは多様-l
で多様な期待を満たすように一般化できます--numeric-suffixes=
。前に追加する行数split
と後で削除するファイルの数を数える必要があります。
必要な数の行を作成するために使用できますyes '' | head -n "$number"
。ループを使用すると、必要な数のファイルを削除できますfor
。
コメントで述べたように、split
バージョンが古すぎてサポートされていない場合は、アップグレード--numeric-suffixes=
を検討する必要があります。