Проблема, вызывающая сбой ansible run, указана в вашем последнем блоке терминалов:
No package matching 'php5-cli' found available, installed or updated
Вы должны обнаружить, что это также не работает, если вы попытаетесь установить его на узел без с помощью ansible
; попробуй
node$ sudo apt install php5-cli
Удалите php5-cli
из php.yml
и повторите попытку.
Если я правильно понял ваш вопрос, это работает для вас?
sed -e 's/:/\t/1' -e 's/:/\t/1' yourFile
Первые два двоеточия заменяются символами табуляции, а остальные печатаются
С вашими демонстрационными данными вывод будет
ExampleCol1 ExampleCol2 Ex:am:ple:Col3
Я не уверен, так как в своем вопросе вы говорите, что получаете
ExampleCol1:ExampleCol2:Ex
При выполнении предоставленной вами команды awk я получаю
ExampleCol1 ExampleCol2 Ex
_example='ExampleCol1:ExampleCol2:Ex:am:ple:Col3'
awk -F: '{printf $1 "\t" $2 "\t"} {for(i=3;i<=NF;i++) printf $i "\t"} {print ""}' <<<"${_example}"
... выглядит немного беспорядочно, но выводит...
ExampleCol1 ExampleCol2 Ex am ple Col3
... вероятно, есть более краткий способ выразить то, что вы хотите, с помощью awk
, например...
awk -F: '{for(i=1;i<=NF;i++) printf $i "\t"} {print ""}' <<<"$_example"
... но приведенное выше должно немного приблизить вас к желаемому поведению с помощьюawk
О, похоже, вам нужно было двоеточие после второго столбца, если так, то...
awk -F: '{printf $1 "\t" $2 "\t"} {for(i=3;i<NF;i++) printf $i ":"} {print $NF}' <<<"$_example"
... может быть немного правильнее ответить на это с помощью awk
...
ExampleCol1 ExampleCol2 Ex:am:ple:Col3
Один из выходов может быть таким, как показано:
$ awk -vOFS="\t" '{
sub(/:/, OFS)
sub(/:/, OFS)
}1' inp
Или, по-другому:
$ awk '! /:.*:/ || sub(/:/, "\t") && sub(/:/, "\t")' inp
Пробовал с помощью приведенной ниже команды, все сработало
команда
sed "s/:/ /3g" filename| awk -F ":" '{print $1,$2,$3}'| sed "s/ /:/3g"| awk 'OFS="\t" {print $1,$2,$3}'
выход
ExampleCol1 ExampleCol2 Ex:am:ple:Col3