Atualmente estou trabalhando em fazer um script básico de Linux, de modo que ele leva qualquer número de argumentos e chama um script separado para imprimir o terceiro caractere de cada argumento em linhas separadas.
Eu fiz o roteiro para pegar o terceiro personagem, vamos chamá-lo "char3"
:
threeString=$1
echo ${threeString:2:1}
No entanto, para o script que chama char3
Não tenho certeza de como posso fazê-lo aceitar qualquer número de argumentos e percorrer cada um deles individualmente. Eu tentei apenas fazer em uma matriz, mas eu não sei como chamar o char3
script em vez de apenas codificá-lo em um novo script inteiramente.
Esta foi minha tentativa:
declare -a stringArr={ "$*" }
for i in "${stringArr[@]}"
do
./char3 i
done
Por que você está usando o novo script para fazer este trabalho? Awk já pode imprimir o terceiro caractere.
—
makgun
Por que você está usando o novo script para fazer este trabalho? Awk já pode imprimir o terceiro caractere. `awk '{print substr ($ 0,1,1)}' arquivo` a sintaxe diz que você quer obter o 3o char em $ 0. Em $ 0, pegue primeiro caractere e depois siga 1 caractere.
—
makgun
$0,2,4
significa que em $ 0 obter o segundo char e depois seguir 4 chars. Por ex; echo helloman | awk '{print substr($0,2,4)}'
e a saída é ello
(a resposta de nims @stackoverflow)