sed +, как удалить character/s, которые запускаются или законченный на каждом числе

Не делайте вещей как пользователя root. Настроенный sudo, чтобы позволить Вашей обычной учетной записи делать корневые вещи, но с паролем. Это дает Вам один последний шанс видеть то, что Вы действительно делаете.

Но когда Вы действительно работаете как корень, настраиваете псевдонимы для общих команд, которые вызывают интерактивное использование. например. alias rm="rm -i" сделает rm подсказка перед удалением. Вы можете явно переопределение с -f (сознательное решение), если Вы действительно хотите rm * (затем был бы rm -f *).

Вы не сказали, какой FS был на USB. Обычно они - VFAT. Можно смонтировать их с опциями заставить каждый файл уже, казаться, принадлежать определенному пользователю. Затем никогда на самом деле необходимо работать chown -r ... и таким образом устраните возможность ошибки.

Сделайте свое корневое приглашение оболочки красным, чтобы напомнить Вам, что Вы работаете с поднятым полномочием.

Обычно делает вещи трудными для Вас сделать, поскольку корень, с препятствиями, такими как пароль запрашивает, и т.д.

Теперь, после факта для фиксации его можно получить доступ к другой машине как он и использованию find показать Вам программы SUID/SGID. Затем заставьте поврежденный диск соответствовать тому chmod команда.

3
13.05.2013, 00:01
3 ответа

Используя стандартный синтаксис (так как OP упомянул Солярис):

sed 's/^\([[:blank:]]*\)\.*/\1/;s/\.*\([[:blank:]]*\)$/\1/'

На Солярисе, как обычно, Вы, возможно, должны звонить /usr/xpg4/bin/sed или command -p sed

3
27.01.2020, 21:20

Вот:

sed -e 's/^\(\s*\)\.\+/\1/;s/\.\+\s*$//' your_file

Это распечатает измененный файл к стандартному выводу. Для записи в другой файл используйте:

sed -e 's/^\(\s*\)\.\+/\1/;s/\.\+\s*$//' your_file >new_file

Для изменения файла на месте использовать

sed -i -e 's/^\(\s*\)\.\+/\1/;s/\.\+\s*$//' your_file

Править

  • Измененный regexes для составления (возможного) продвижения или запаздывающего пробела.
  • Измененный regexes для сохранения ведущего пробела согласно комментарию manatwork.
1
27.01.2020, 21:20
  • 1
    Обратите внимание, что согласно примеру, ведущие пробелы должны быть сохранены. –  manatwork 12.05.2013, 20:24
  • 2
    Право Вы. Regexes изменяется. –  Joseph R. 12.05.2013, 20:27
  • 3
    Это - синтаксис GNU, OP имеет тег/solaris. –  Stéphane Chazelas 12.05.2013, 23:00
$ cat foo
.23.12.44.5.
 .233.3.3.3
line1
 23.4.5.3.2..
 ....33.2.3.45.5
 .3.3.2.....

line2
$ sed 's/^ *\.*//;s/\.* *$//' foo
23.12.44.5
233.3.3.3
line1
23.4.5.3.2
33.2.3.45.5
3.3.2

line2
0
27.01.2020, 21:20
  • 1
    Это только имеет дело с пробелами не ВКЛАДКИ. Это также ест ведущий пробел, который не требуется (см. OP и комментарий manatwork к моему ответу). –  Joseph R. 12.05.2013, 20:49

Теги

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