Использование sed в альтернативной строке

chroot: failed to run command ‘ls’: No such file or directory

Чтобы выполнить любую команду внутри chroot, вам нужно, чтобы эта программа была доступна в chroot (поскольку она не может использовать программу, установленную в /файловой системы.

Самый простой способ — скопируйте /usr/bin/lsиз в /home/kuba/projects/jcubic/leash/usr/bin/(вам также понадобятся зависимые общие библиотеки: ldd /usr/bin/ls).

1
12.05.2019, 13:06
3 ответа

это удалит все до -тире в каждой 2 й строке:

sed '0~2s/.*-//' infile

если вы имеете в виду удаление во вторых строках из строк, следующих после строки 12345.ABC9998, тогда вы должны сделать:

sed '/^12345.ABC9998$/{n; s/.*-//}' infile

если вы имеете в виду удаление во вторых строках, следующих за строкой, содержащей 12345.ABC9998строк, вы должны сделать:

sed '/12345.ABC9998/{n; s/.*-//}' infile
3
27.01.2020, 23:14

Если вы хотите воздействовать только на строки, которые содержат тире (в вашем примере, это похоже на случай ), тогда это должно работать:

sed 's/^.*-//' file.txt

Он удалит все до тире в начале каждой строки включительно. Кроме этого,в строках без тире регулярное выражение не будет совпадать, поэтому оно не будет выполнять никаких замен и оставит строку как есть.


Если вы хотите применить преобразование только к каждой второй строке, вы можете использовать команду sedn(для «следующей» ), чтобы пропустить строку, по-прежнему отправляя ее на выход.

Это предполагает, что вы действительно хотите воздействовать на четные строки (в вашем примере, между блоками есть пустые строки, я предполагаю, что это артефакт копирования и вставки, а заголовок вашего вопроса «альтернативные строки» на самом деле то, что вы хотите.)

Эта команда применит регулярное выражение только к четным строкам:

sed 'n;s/^[^A-Z]*//' file.txt
4
27.01.2020, 23:14

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

sed -i '0~2s/[^A-Z]*//' file
-1
27.01.2020, 23:14

Теги

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