我試圖使用csplit命令來分割3個字符串分隔符的文件,但我遇到了問題。我沒有讓cplist與分隔符列表一起工作。 這就是我想出來:csplit命令中的正則表達式中有超過1個分隔符
我有這個文件:
TRANSHEADER002_XA
XAL1
XAL2
XAL3
TRANSHEADER001_EXEC
EXECL1
EXECL2
EXECL3
TRANSHEADER003_YB
YBL1
YBL2
YBL3
TRANSHEADER002_XA
XAL1A
XAL2A
XAL3A
這些字符串分隔符
TRANSHEADER002_XA
TRANSHEADER001_EXEC
TRANSHEADER003_YB
但是當我嘗試喲使用我沒有得到成功具有多於1個定界符csplit可命令如下
csplit -k -s -f "$file"_split. "$file" "/^\(TRANSHEADER002_XA\|TRANSHEADER001_EXEC\|TRANSHEADER003_YB\)/" "{999}"
csplit -k -s -f "$file"_split. "$file" "/^(TRANSHEADER002_XA|TRANSHEADER001_EXEC|TRANSHEADER003_YB)/" "{999}"
csplit -k -s -f "$file"_split. "$file" "/^TRANSHEADER002_XA|^TRANSHEADER001_EXEC|^TRANSHEADER003_YB/" "{999}"
我得到一個「超出範圍」的錯誤像下面的任何命令的上述
/^\(TRANSHEADER002_XA\|TRANSHEADER001_EXEC\|TRANSHEADER003_YB\)/ - out of range
我想分裂像下面
--> file_split.01
TRANSHEADER002_XA
XAL1
XAL2
XAL3
--> file_split.02
TRANSHEADER001_EXEC
EXECL1
EXECL2
EXECL3
--> file_split.03
TRANSHEADER003_YB
YBL1
YBL2
YBL3
--> file_split.04
TRANSHEADER002_XA
XAL1A
XAL2A
XAL3A
。你們知道我怎麼能做到這一點的文件,通過使用則csplit或使用會送給另一個命令我像我上面顯示的分割文件?
非常感謝!
我「則csplit:非法重複計數:{*}」和「則csplit:非法選項 - Z」 然後我嘗試這種方式對於上面的例子文件: csplit -ksf「$ file」_split。 「$ file」「/^TRANSHEADER002_XA \ | TRANSHEADER001_EXEC \ | TRANSHEADER003_YB /」「{3}」 和 csplit -ksf「$ file」_split。 「$文件」 「/^TRANSHEADER002_XA | TRANSHEADER001_EXEC | TRANSHEADER003_YB /」, 「{3}」 都失敗,同樣超出範圍 則csplit:/^TRANSHEADERIBMAPU001_NA \ | TRANSHEADERIBMAPU002_EMEA \ | TRANSHEADERIBMAPU003_AP/- 超出範圍 – Jose