Q:

Разбиение строк в bash

Есть файл такого содержания (список работающих сервисов tomcat):
running:courtjudgementclaimcardws-ws-1.0
running:courtofficerws-ws-1.0
running:usk62ws-ws-1.0
running:destinationscopiesresultingdocumentws-ws-1.0
stopped:categoriescrimeguidews-ws-1.0
running:crimeepisodecardws-ws-1.0
running:documentmodulews-ws-1.0

Как средствами bash получить из этих строк два массива по разделителю :? 

A:

Если Вам нужно получить отдельные файлы с содержимым каждого из полей разделенных ":" тогда так 
awk -F ":" '{print $1}' source_file >> destination_file_1 && \
awk -F ":" '{print $2}' source_file >> destination_file_2

Если Вам нужно получить массивы в переменные, то тогда так 
a=( $( awk -F ":" '{print $1}' source_file ) ) && \
b=( $( awk -F ":" '{print $2}' source_file ) )

UPD
Более корректное решение выглядит так:
mapfile -t a <<<"$(awk -F ":" '{print $1}' source_file)"

Поскольку если в выводе встретятся строки содержащие пробелы то первый вариант запишет их в отдельные строки массива разделив по пробелу.  
В случае если Вам нужно получить массивы с согласованной нумерацией строк, то можно использовать следующее решение:
awk -F ":" '{print $1}' source_file | \
awk '{printf "%s-%s\n", NR, $0}' > destination_file_1

awk -F ":" '{print $2}' source_file | \
awk '{printf "%s-%s\n", NR, $0}' > destination_file_2

Между %s и %s можно вставить любой резделитель
В переменные эти массивы загоняются так-же как и во втором примере. 
UPD
Менее громоздкий вариант:
awk -F ':' '{printf " %s-%s\n, NR, $1}' source_file > destination_file_1 && \
awk -F ':' '{printf " %s-%s\n, NR, $2}' source_file > destination_file_2

