Muitas maneiras:
-
grepcom PCRE (-P):grep -Po '^[^\s]+\s+\K.*' file.txt-
^[^\s]+\s+corresponde ao primeiro campo junto com espaço em branco à direita,\Kdescarta a correspondência e, em seguida,.*corresponde ao restante da linha e é impresso
-
-
sed:sed -E 's/^[^[:blank:]]+[[:blank:]]+//' file.txt-
^[^[:blank:]]+[[:blank:]]+corresponde ao primeiro campo, novamente com o (s) espaço (s) em branco à direita e é substituído por uma string vazia
-
-
awk:awk -F "[[:blank:]]+" '{$1=""; print substr($0, 2)}' file.txt-
-F "[[:blank:]]+"define o separador de campo como um ou mais espaços em branco,$1=""define o primeiro campo como string vazia, isso introduz um espaço em branco na frente, então precisamos fazer o fatiamento de string com substr ($ 0, 2) 'para obter caracteres a partir do segundo
-
-
cut:cut -d" " -f2- file.txt-
-d" "define o delimitador como espaço e-f2-imprime os campos a partir do segundo
-
-
bash:while read -r _ desired; do echo "$desired"; done <file.txt- Ler cada linha e definir o primeiro campo como variável de distribuição
_,desiredcontém a parte restante e é impresso emecho "$desired"
- Ler cada linha e definir o primeiro campo como variável de distribuição
-
perl:perl -pe 's/^[^\s]+\s+//' file.txt- Lógica semelhante ao
sedone
- Lógica semelhante ao
-
python:#!/usr/bin/env python with open('file.txt') as f: for line in f: print line.split(' ', 1)[1]- Ler cada linha e
line.split(' ', 1)irásplitno espaço com um máximo de1operação de divisão, portanto o índice 0 conterá a primeira palavra e o índice 1 terá a parte desejada (ou seja, da segunda palavra até fim)
- Ler cada linha e