Данные извлечения из строки и предварительно ожидают к строке?

Я думаю, что самый безопасный путь состоял бы в том, чтобы скопировать файлы, которые Вы имеете на палке к Вашему жесткому диску, форматируя его и копированию сохраненных файлов к карте памяти снова. Это должно быть довольно простой и относительно быстрой операцией, и она гарантировала бы палку, чтобы быть в нетронутом состоянии.

Для больших портативных дисков (говорят, что несколько сотен ГБ) это не может быть опцией, если у Вас нет пространства для резервного копирования всего этого, но для чего-то всего 8 ГБ я полагаю, что это - лучший способ.

1
07.12.2013, 18:16
4 ответа
$> sed -r -e 's/(.*-)([0-9]+-[a-z]+)(.*)/\2 \1\2\3/' text 
8-july <a href="arch/names-8-july--123123123">
12-february <a href="arch/seman-12-february-text-text--321321321">
17-june <a href="arch/nmaes-17-june--213213321">

Это, кажется, подходит для Вашего новейшего примера также:

$> sed -r 's/(.*-)([0-9]+-[a-z]+)(.*)/\2 \1\2\3/' text2
5-cervna <a href="/praha/jaktovidi/_zprava/jak-to-vidi-rektor-richard-hindls-5-cervna--1220102">
4-cervna <a href="/praha/jaktovidi/_zprava/jak-to-vidi-erik-best-4-cervna--1219526">
3-cervna <a href="/praha/jaktovidi/_zprava/jak-to-vidi-ivan-hoffman-3-cervna--1218826">
19-kvetna <a href="/praha/jaktovidi/_zprava/jak-to-vidi-pavel-kosatik-19-kvetna-verejne-chci-podekovat-statnim-zastupcum-a-policistum-kteri-se-nebali--1225675">
4
27.01.2020, 23:11

Это предполагает поиск первого соответствия числа, сопровождаемого тире и затем строкой словесных символов.

    perl -ne '/(\d+-\w+)/; print "$1 $_"' file.txt
3
27.01.2020, 23:11

Другое решение с вырезанным и вставленным (это зависит от того, чтобы там быть существующим text файл):

cut -d"-" -f 6-7 text | paste - text

После редактирования это работало бы:

grep -Po '[0-9]{1,2}-[[:alpha:]]*' text | paste - text
3
27.01.2020, 23:11
perl -pe '$_ = "$& $_" if /[0-9]{1,2}-[[:alpha:]]*/'
3
27.01.2020, 23:11
  • 1
    @slm это не будет работать с отправленным примером, OP, говорит, что в реальных данных существует больше тире, который является, почему Stephane использует 6 долларов и 7. –  terdon♦ 30.07.2013, 18:20
  • 2
    @terdon - спасибо видят что бит к концу. –  slm♦ 30.07.2013, 18:22

Теги

Похожие вопросы