Вы можете вызвать cut
несколько раз:
cut -c 1-10 < file > out1.txt
cut -c 11-24 < file > out2.txt
cut -c 25-32 < file > out3.txt
cut -c 33-54 < file > out4.txt
(будьте осторожны, текущие версии GNU вырезаны
не поддерживают многобайтовые символы (что не должно быть проблемой для десятичных цифр ASCII, как в вашем вводе))
Или с awk
за один раз:
awk '{
print substr($0, 1, 10) > "out1.txt"
print substr($0, 11, 14) > "out2.txt"
print substr($0, 25, 8 ) > "out3.txt"
print substr($0, 33, 22) > "out4.txt"}' < file
(имейте в виду, что некоторые реализации of awk
, как и текущие версии mawk
, не поддерживают многобайтовые символы (что не должно быть проблемой для десятичных цифр ASCII))
С GNU awk
, вы также можете:
awk -v FIELDWIDTHS='10 14 8 22' '
{for (i = 1; i <= NF; i++) print $i > "out" i ".txt"}' < file