Ваша команда:
set bootargs_nand=setenv bootargs ${bootargs} root=/dev/mtdblock2
ip=192.168.0.100 rootfstype=jffs2
не будет работать как есть.
Это должно, по крайней мере, быть:
setenv bootargs_nand 'setenv bootargs ${bootargs} root=/dev/mtdblock2
ip=192.168.0.100 rootfstype=jffs2'
без =
знак, и использующий одинарные кавычки для предотвращения расширение ${bootargs}
до bootargs_nand
команда на самом деле выполняется.
Для установки более гибкой настройки IP необходимо также указать ip=${ipaddr}
в рамках той команды вместо того, чтобы явно использовать исполнительный адрес. Значением среды Uboot заменят.
Этот ответ предварителен, пока эти дефекты не были исправлены.
Предположим, что вы хотите удалить все до последней двоеточия и оставить john.doe
нетронутым:
echo 'hd_ma_prod_customer_ro:*:123456789:john.doe' |
sed 's/.*://'
Первая строка просто передает тестовую строку в sed
, например, для целей.
Вторая - основная sed
замена . Часть между первой и второй /
- это регекс для поиска, а часть между второй и третьей - это то, чем ее заменить (в данном случае ничего, так как мы удаляем).
Для регекса, .
соответствует любому символу, *
повторяет это любое количество раз (включая ноль) и :
соответствует двоеточие. Настолько эффективно, что за двоеточием следует все, что угодно. Так как .*
может включать двоеточие, то соответствие "жадно" и все до последнего двоеточия включено.
sed -r 's/:/\t/g' filename | awk -F'\t' '{print $4}'
Я заменяю все вхождения : на вкладку tab и затем использую awk
для извлечения строкового джона. лань.
Если у вас нет файла, вы можете попробовать это.
echo 'hd_ma_prod_customer_ro:*:123456789:john.doe' | sed -r 's/:/\t/g' |
awk -F'\t' '{print $4}'
Согласно комментариям Грэма, мы можем использовать awk
для печати только последнего столбца, используя переменную NF
из awk
, как показано ниже.
echo 'hd_ma_prod_customer_ro:*:123456789:john.doe' | sed -r 's/:/\t/g' | awk -F'\t' '{print $NF}'
Включение комментариев Graeme, чтобы избавиться от ненужных sed
Команда может быть изменена, как указано ниже.
echo 'hd_ma_prod_customer_ro:*:123456789:john.doe' | awk -F':' '{print $NF}'
Пожалуйста, попробуйте
отредактировать: удалить якорь
echo 'abc:fjk' |sed 's/.*:/john.doe/g'
и удалить
echo 'abc:fjk' |sed 's/.*://g'