20,000行を含むlog.txtファイルがあります。各線には、グループで区切られた数字とxyz平面座標があります。コレクションは、log.txtでABC_1、ABC_2などの名前で識別できます。
このlog.txtファイルのすべてのセットデータを、セット内のすべてのデータ(ABC_1など)を含める必要がある別のテキストファイルに分割したいと思います。
私のlog.txtは次のようになります。
ABC_1:
1, (xyz coordinates)
2, (xyz coordinates)
3, (xyz coordinates)
.... Continue
ABC_2:
101, (xyz coordinates)
102, (xyz coordinates)
103, (xyz coordinates)
.... Continue
ABC_3:
201, (xyz coordinates)
202, (xyz coordinates)
203, (xyz coordinates)
.... Continue
ABC_99:
9991, (xyz coordinates)
9992, (xyz coordinates)
9993, (xyz coordinates)
.... Continue
ABC_1.TXT
単一のlog.txtファイルから99個の個別のテキストファイルを提供でき、名前をset name、ABC_2.TXT
... to ABC_99.TXT
from log.txtとして指定するスクリプトを作成したいと思います。
答え1
csplitを使用して
csplit -s -b %d.txt -f ABC_ Log.txt /ABC_/ {*}
答え2
Awk
解決策:
awk '/^ABC_/{
if (fn) close(fn); sub(":", "", $1);
fn = $1".txt"; next
}
{ print > fn }' Log.txt