Я долго искал это, но я не мог понять, что делает это sed на самом деле !?Что делает эта команда sed?
sed -E $'s:$:\t:' < file1 | cut -f 2 > file2
Кто может объяснить мне пожалуйста?
Я долго искал это, но я не мог понять, что делает это sed на самом деле !?Что делает эта команда sed?
sed -E $'s:$:\t:' < file1 | cut -f 2 > file2
Кто может объяснить мне пожалуйста?
Это не сценарий sed, это сценарий оболочки, содержащий команды bash, sed и cut. Сценарий sed запутывается плохими правилами цитирования, излишне меняя разделитель и добавляя ненужный аргумент. Я предполагаю, что вы знаете, что делает cut -f 2
, поэтому я не могу представить, почему вы включили это, чтобы еще больше запутать свой вопрос, и поэтому я проигнорирую его и сосредоточусь на части sed.
Команда у вас есть:
sed -E $'s:$:\t:'
Давайте перепишем, осмысленно, и вы получите:
sed 's/$/'$'\t''/'
который без '
сценария разделителей и с некоторыми дополнительными пробелами добавленных для ясности:
s/ $/$'\t'/
Теперь вы видите, что он делает? Замена конца строки вкладкой.
Так что в итоге это было что-то очень простое ... Спасибо за ваш ответ :) –
Откуда у вас это? –
Вместо поиска решения найдите документацию для 'sed' и прочитайте ее. Тогда вы сможете объяснить это сами ... И понять другие вещи, которые может сделать «sed». –
FWIW, это подстановка, которая добавляет символ табуляции в конец каждой строки. Затем вырежьте второе поле. – andlrc