Можно попытаться нажать Alt + F7
чтобы проверить, существует ли выполнение графического интерфейса (можно также попробовать другие комбинации: Alt + F1
кому: F12
). Можно также попробовать команду startx
. Если это не вызовет это, то Вы получите графический интерфейс, это, скорее всего, не установлено.
В большинстве случаев при нахождении ноутбука с Linux в хранилищах установленная система бесполезна. Это установлено только, чтобы показать, что компьютер предлагается с системой, но это не настроено правильно.
В этом случае наилучший вариант для Вас, которыми это было бы, переустанавливает систему - можно попробовать, например, Ubuntu. Установка действительно проста, и будет намного легче что, фиксируя Ваш установленный Linpus.
Если у вас есть файл, в котором каждая строка
одиннадцатисимвольную (или любую другую) строку, которую ты хочешь порезать,
sed
- это инструмент, который можно использовать.
Он прекрасно подходит для манипулирования одной строкой, но это перебор.
Для одной строки ответ Джейсона , наверное, самый лучший,
если у вас есть доступ к bash версии 4.2 или выше.
However, the ${parameter:offset}
and ${parameter:offset:length}
syntaxes
являются уникальными для баш (ну, баш, кш93, мкш, и зш) -
Я не вижу их
в The Open Group Base Specifications for Shell Command Language .
Если вы застряли с оболочкой, совместимой с POSIX.
который не поддерживает расширение (извлечение) подстроки, вы можете использовать
$ printf "%s\n" "${string#???}"
W2345678
$ printf "%s\n" "${string%????}"
H08W234
, используя printf
вместо echo
для защиты от строк типа abc-e
,
где, когда вы пропускаете первые три символа, вы остаетесь с -e
.
(и echo -e
не делает того, что бы вы хотели).
И, если вы вообще не используете оболочку семейства Борн. (или вы используете древнюю, до-POSIX, систему), они все равно должны работать:
$ expr " $string" : ' ...\(.*\)'
W2345678
$ expr " $string" : ' \(.*\)....'
H08W234
Дополнительное ведущее пространство, чтобы избежать проблем со значениями $string
.
которые являются фактическими операторами expr
(например, +
, /
, индекс
или совпадение
).
или опции (например, --
, --help
или --версия
).
$ echo "H08W2345678" | sed 's/^.\{3\}//'
W2345678
sed 's / ^. \ {3 \} //'
найдет первые три символа по ^. \ {3 \}
и замените пустым. Здесь ^.
соответствует любому символу в начале строки ( ^
указывает начало строки), а \ {3 \}
будет соответствовать предыдущему шаблону ровно 3 раза. Итак, ^. \ {3 \}
будет соответствовать первым трем символам.
$ echo "H08W2345678" | sed 's/.\{4\}$//'
H08W234
Аналогично, sed 's /. \ {4 \} $ //'
заменит последние четыре символа пробелом ( $
указывает конец строки).
С:
string="H08W2345678"
Соответствие 3 или 4 символам кажется простым (для большинства оболочек):
$ printf '%s\t%s\n' "${string#???}" "${string%????}"
W2345678 H08W234
Для более старых оболочек (, таких как оболочка Борна ), используйте:
$ string=H08W2345678
$ expr " ${string}" : "...\(.*\)"
W2345678
$ expr " ${string}" : " \(.*\)...." '
H08W234
Если требуется числовое значение символов, используйте:
$ expr " ${string}" : ".\{3\}\(.*\)"
W2345678
$ expr " ${string}" : " \(.*\).\{4\}" '
H08W234
Конечно, эти регулярные выражения также работают с sed, awk и bash 3.0+:
$ echo "$string" | sed 's/^.\{3\}//'
W2345678
$ echo "$string" | sed 's/.\{4\}$//'
H08W234
$ echo "$string" | awk '{sub(/^.{3}/,"")}1'
W2345678
$ echo "$string" | awk '{sub(/.{4}$/,"")}1'
H08W234
$ r='^.{3}(.*)$'; [[ $a =~ $r ]] && echo "${BASH_REMATCH[1]}"
W2345678
$ r='^(.*).{4}$'; [[ $a =~ $r ]] && echo "${BASH_REMATCH[1]}"
H08W234
How to 'drop'/delete characters from in front of a string?
I have a string that I would like to manipulate. The string is H08W2345678 how would I be able to manipulate it so the output is just W2345678?
echo "H08W2345678" | cut -c 4-
Similarly if the I wanted to drop the last 4 characters from H08W2345678 so that I get H08W234 how would I do this?
echo "H08W2345678" | cut -c -7