Что такое умный и чистый/сжатый способ перестановки полей, соответствующих критерию? Для моих целей, записи могут быть блоки разделены пустыми строками, например .:Один вкладыш для переупорядочения полей для соответствующего элемента
apple
banana
12345
carrot
donut
98765
eggplant
или табуляцией, например,
apple banana 12345 carrot
donut 98765 eggplant
В любом случае, предположим, что я ищу шаблон /[0-9]{5}/
. Если это согласовано, я хочу перенести его на первую запись. Это дало бы следующее:
12345
apple
banana
carrot
98765
donut
eggplant
или табуляцией, например,
12345 apple banana carrot
98765 donut eggplant
Там нет необходимости поддерживать оба формата. Они взаимозаменяемы для меня.
One-liner preferred.
Извините, это не сайт «напишите мой код для меня». Вы должны приложить некоторые усилия для решения проблемы самостоятельно. –
Джим, я понимаю, почему так может показаться, но проблема здесь делает это в одной строке. Я могу придумать множество способов сделать это с помощью небольших скриптов, но я не могу понять, как это сделать с помощью нескольких труб или символов. Возможно, мне следовало бы уточнить важность однострочного лайнера. Я просто не сказал этого, потому что супер-короткий скрипт обычно можно преобразовать в однострочный. –
'awk '/^[0-9] + $/{printf $ 0" \ t "; next} {if ($ 0 ~/^ $ /) {print block; block = ""} else {block = block $ 0 "\ t"}} END {print block} '' – dawg