Добавьте столбец

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

2
12.06.2014, 09:41
3 ответа
[

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

] [
    ] [
  1. ][

    ]Использование []$[] как части вашего выражения внутри строки, заключенной в двойные кавычки, опасно. Обычно это будет расширяться как bash-переменная. В этом случае вам это сошло с рук, потому что символ []/[] после него не является действительным ценным именем, но чтобы избежать этого, вы действительно должны были использовать одинарные кавычки вокруг вашего выражения.[

    ][
  2. ] [
  3. ][

    ]Если вы хотите выровнять вещи как столбцы, возможно, вам следует включить какой-нибудь разделитель между концом строки и добавляемым значением. Вкладка может быть самым простым способом сделать это, но вы, вероятно, должны использовать любой разделитель, который у вас уже есть между другими полями.[

    ][
  4. ] [
] [

]Комбинированная команда может выглядеть следующим образом:[

] [
sed -i 's/$/\tgreen/' ./test.txt
] [

]Если результаты выстраиваются не так, как вы хотите, вы можете посмотреть, как выстраивать свои данные через []столбец[], чтобы выстраивать столбцы.[

] [

]Что касается вещей, которые вы нам не показываете, то проблема, вероятно, в вашем файле данных. Так как вы упоминаете Wordpad и Excel в комментарии. Думаю, у вас смешанная среда Windows/Unix. Я подозреваю, что проблема в том, что в вашем файле данных есть мусорные непечатаемые последовательности до конца строк. Вы должны сделать что-нибудь, чтобы это убрать. Простая []sed 's/\s*$//'[] может быть одним из мест для начала (полосы всех пробельных символов в конце строки, кроме последней новой строки), но более продвинутая система, такая как преобразователь dos2unix, может дать вам лучшие результаты. Если у вас есть бинарный мусор, и файл должен быть ASCI-текстом, вы можете попробовать взорвать все, что находится вне диапазона с помощью []tr -cd '\11\12\15\40-\176'[].[

].
7
27.01.2020, 21:52
[

] можно использовать []awk[]:[

] [
awk '{printf "%s", $0 "\tgreen\n"}' infile > outfile
]
0
27.01.2020, 21:52

Вы можете использовать Vim в режиме Ex:

ex -sc '%s/$/\tgreen/|x' test.txt
  1. % выберите все строки

  2. \ t вкладку

  3. x сохранить и close

0
27.01.2020, 21:52

Теги

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