Mam następujący kod, który bash pętle poprzez pliku tekstowym, linia po linii .. im próbuje poprzedzić prefiksem „praca” na każdej linii, ale zamiast tego dostaję ten błąd:Jak mogę przedłużyć ciąg znaków do początku każdej linii w pliku?
[email protected]:~/Desktop$ ./appendToFile.sh stusers.txt kp
stusers.txt
kp
./appendToFile.sh: line 11: /bin/sed: Argument list too long
[email protected],passw0rd
jest to bash skrypt ..
#!/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
Co ja tu robię źle?
Aktualizacja: Wykonanie głowy na pliku zrzuca wszystkie linie do pojedynczej linii terminalu, prawdopodobnie powiązane?
[email protected]:~/Desktop$ head stusers.txt
[email protected]:~/Desktop$ ouse.com,passw0rd
Prawdopodobnie masz nieprawidłowych zakończeń linii w pliku. Być może chcesz 'dos2unix' –
@WilliamPursell próbowałem uruchomić dos2unix do pliku, ale nie wstawiłem dla mnie nowych linii, najłatwiejszym rozwiązaniem było skopiowanie zawartości pliku do nowego pliku – bobbyrne01