podręcznik
-p pattern
The file is split whenever an input line matches pattern,
which is interpreted as an extended regular expression. The
matching line will be the first line of the next output file.
This option is incompatible with the -b and -l options.
Kod
seq -w 1 1 10 | gsed ':a;N;$!ba;s/\n//g' | split -p '060'
co tworzy sekwencję od 1 do 10, usuwa puste linie, aby mieć megastring, a następnie dzieli się na 060
dwa pliki, które nie dają rezultatu split: invalid option -- 'p'
.
Komenda seq -w 1 1 10 | awk -F'060' '{print "field1: "$1 "\nfield2: 060"$2}'
w komentarzu daje
pole1: 01 pole2: 060 pole1: 02 pole2: 060 pole1: 03 pole2: 060 pole1: 04 pole2: 060 pole1: 05 pole2: 060 pole1: 06 pole2: 060 pole1: 07 pole2: 060 pole1: 08 pole2: 060 pole1: 09 field2: 060 field1: 10 field2: 060
co nie jest tym czego chcę. Chcę podzielić plik przy znaku 060
na dwa pliki. Możesz dołączyć 060
do dowolnego pliku.
Jak używać flagi -p w BSD Split w OSX?
man split
dotyczy BSD, podczas gdy mój fakt split
dotyczy GNU.
seq
i gsed
poleceń podczas podstawiając awk
za split
? Następujące dane wyjściowe poleceń to dwa wiersze, jeden jest, field1: 0102030405
a drugi jest field2: 0607080910
. Polecenie to:seq -w 1 1 10 | gsed ':a;N;$!ba;s/\n//g' | awk -F'060' '{print "field1: "$1 "\nfield2: 060"$2}'
split
. Cowhich split
zwraca