Csplit
如何使 csplit 開始輸出文件名從 001 開始的文件?
我使用 csplit 將一個複雜的文件劃分為
file.docked.pdb
小文件。csplit -k -s -n 3 -f file.docked. file.docked.pdb '/^ENDMDL/+1' '{'7'}'
man csplit
完美解釋以下程式碼NAME csplit - split a file into sections determined by context lines -k, --keep-files do not remove output files on errors -s, --quiet, --silent do not print counts of output file sizes -n, --digits=DIGITS use specified number of digits instead of 2 -f, --prefix=PREFIX use PREFIX instead of 'xx' Each PATTERN may be: /REGEXP/[OFFSET] copy up to but not including a matching line {*} repeat the previous pattern as many times as possible
我的疑問是輸出文件開始命名
file.docked.000
並向前擴展如何使編號從
file.docked.001
???如果工具根本不支持這一點,請提供解決方法。
第一個文件輸出文件的索引始終為 0,並且沒有更改起始索引的選項。
作為一種解決方法,您可以在輸出數據之前使用程序替換來列印一次您的模式。這樣,該虛擬行將拆分為文件
file.docked.000
,您可以在之後刪除該文件。還將重複模式增加一以獲得所需數量的輸出文件。csplit -k -s -n 3 -f file.docked. \ <(echo "ENDMDL dummy, delete this file"; cat file.docked.pdb) '/^ENDMDL/+1' '{8}' && rm file.docked.000