GNU/Linux >> Linux Esercitazione >  >> Linux

ottenere i primi 5 caratteri da ogni riga nello script di shell

Se vuoi usare cut in questo modo, devi usare il reindirizzamento <<< (una stringa qui) come:

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

Nota l'uso di var=$(command) espressione invece di id= cut -c-5 $line . Questo è il modo per salvare il comando in una variabile.

Inoltre, usa /bin/bash invece di /bin/sh per farlo funzionare.

Codice completo che funziona per me:

#!/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"

Bene, è un cut -c-5 sample.txt di una riga . Esempio:

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

Da lì in poi, puoi reindirizzarlo a qualsiasi altro script o comando:

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

Linux
  1. Come ottenere l'indirizzo IP esterno in uno script di shell?

  2. Come visualizzare i caratteri di controllo (^c, ^d, ^[, …) in modo diverso nella shell?

  3. Contando i caratteri di ogni riga con Wc?

  4. Cosa significa e commerciale alla fine di una riga di script di shell?

  5. Come dividere un file e mantenere la prima riga in ciascuno dei pezzi?

Come ottenere il proprio indirizzo IP e salvarlo in una variabile in uno script di shell?

Non riesci a ottenere il codice di uscita corretto da uno script?

Utilizzando il comando passwd dall'interno di uno script di shell

Come installo uno script da eseguire ovunque dalla riga di comando?

Ottieni gli ultimi 4 caratteri dell'output da standard out

Come ottenere l'URL del file Dropbox dalla riga di comando?