Примеры должны быть в / usr / share / doc / $ {package} / examples
. Это описано в разделе политики 12.6 , и вы найдете такие примеры в большинстве систем, производных от Debian.
Другим супер -простым решением было бы преобразовать :
s в пробелы с помощью sed, а затем напечатать слова с echo
в цикле for
:
for i in $(sed 's/:/ /g')
do
echo $i
done
Этот сценарий работает со стандартного ввода на стандартный вывод.
Используя awk
, как вы предложили:
$ awk '{ gsub(":", "\n", $0); print }' <file
Lead
Arrow1
Arrow2
Arrow3
Follow
Arrow4
Arrow5
Arrow6
Arrow7
Arrow8
Arrow9
Это просто заменяет каждый :
во входных данных новой строкой.
Другое awk
решение, в котором используется переменнаяOFS
(Разделитель полей вывода ):
awk -v OFS='\n' -F ':' '{ $1=$1; print }' <file
Назначение $1=$1
выглядит фиктивным, но оно заставляет awk
переформатировать текущую входную запись в соответствии сOFS
(и ORS
, но мы не меняем это значение по умолчанию, которое является новой строкой ), что в данном случае означает вставку новых строк между всеми полями с разделителями :
-.
С помощью awk
мы также могли просто перебирать:
-поля с разделителями и печатать их по отдельности:
awk -F ':' '{ for (i = 1; i <= NF; ++i) print $i }' <file
Вы можете использовать tr
следующим образом:
<file tr ":" "\n"
Lead
Arrow1
Arrow2
Arrow3
Follow
Arrow4
Arrow5
Arrow6
Arrow7
Arrow8
Arrow9
или awk
следующим образом:
<file awk '{gsub(/:/,"\n")}1'
Lead
Arrow1
Arrow2
Arrow3
Follow
Arrow4
Arrow5
Arrow6
Arrow7
Arrow8
Arrow9