GNU/Linux >> Tutoriels Linux >  >> Linux

obtenir les 5 premiers caractères de chaque ligne dans le script shell

Si vous souhaitez utiliser cut de cette façon, vous devez utiliser la redirection <<< (une chaîne ici) comme :

var=$(cut -c-5 <<< "$line")

Notez l'utilisation de var=$(command) expression au lieu de id= cut -c-5 $line . C'est le moyen d'enregistrer la commande dans une variable.

Utilisez également /bin/bash au lieu de /bin/sh pour le faire fonctionner.

Code complet qui fonctionne pour moi :

#!/bin/bash

filename='sample.txt'
while read -r line
do
  id=$(cut -c-5 <<< "$line")
  echo $id
  #code for passing id to other script file as parameter
done < "$filename"

Eh bien, c'est une ligne cut -c-5 sample.txt . Exemple :

$ cut -c-5 sample.txt 
31113
31114
31111
31112

À partir de là, vous pouvez le rediriger vers n'importe quel autre script ou commande :

$ cut -c-5 sample.txt | while read line; do echo Hello $line; done
Hello 31113
Hello 31114
Hello 31111
Hello 31112

Linux
  1. Comment obtenir la propre adresse IP et l'enregistrer dans une variable dans un script shell ?

  2. Supprimez les cinq premiers caractères de n'importe quelle ligne d'un fichier texte sous Linux avec sed

  3. Comment installer un script pour qu'il s'exécute n'importe où à partir de la ligne de commande ?

  4. Exécutez un script shell à partir de la commande docker-compose, à l'intérieur du conteneur

  5. Comment obtenir l'URL du fichier Dropbox à partir de la ligne de commande ?

Obtenez les 4 derniers caractères de la sortie de la sortie standard

Comment obtenir les n premiers caractères de chaque ligne dans le fichier de données Unix

Comment obtenir le PID d'un processus enfant forké dans un script shell

Obtenir une ligne spécifique à partir d'un fichier texte en utilisant uniquement un script shell

Obtenir la première ligne de la sortie d'une commande shell

Comment puis-je obtenir mon adresse IP à partir de la ligne de commande ?