Ho il seguente codice bash che scorre un file di testo, linea per linea .. im cercando di anteporre il lavoro 'prefisso' per ogni linea, ma invece sono sempre questo errore:Come posso anteporre una stringa all'inizio di ogni riga di un file?
[email protected]:~/Desktop$ ./appendToFile.sh stusers.txt kp
stusers.txt
kp
./appendToFile.sh: line 11: /bin/sed: Argument list too long
[email protected],passw0rd
Questa è la bash script ..
#!/bin/bash
file=$1
string=$2
echo "$file"
echo "$string"
for line in `cat $file`
do
sed -e 's/^/prefix/' $line
echo "$line"
done < $file
Cosa sto facendo di sbagliato qui?
Aggiornamento: L'esecuzione di file head head riporta tutte le linee su una singola riga del terminale, probabilmente correlate?
[email protected]:~/Desktop$ head stusers.txt
[email protected]:~/Desktop$ ouse.com,passw0rd
Probabilmente avete fine riga non validi nel file. Forse vuoi 'dos2unix' –
@WilliamPursell ho provato a eseguire dos2unix contro il file ma non ho inserito le nuove linee per me, la soluzione più semplice era copiare il contenuto del file in un nuovo file – bobbyrne01