• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af peters | 14.09.2010 00:53

Tilføj indhold i fil med cat

Programmering
Jeg har en txt fil med 250.000 linier og der vil jeg for enden af disse gerne have tilføjet noget indhold, det skal være det samme der skal tilføjes alle linierne.

Men jeg kan ikke få det til at fungere med en cat burde det ikke være muligt? hvis ikke hvad vil i gøre?
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer5

# 1

14 år 9 måneder siden

Permalink

Indsendt af divineant den 14. september 2010 kl. 01:32

Permalink

Det du leder efter er output

Det du leder efter er output redirection:
>> tilføjer til slutningen af en fil
> overskriver indholdet af en fil


# tilføj enkelte linier
echo "tilføjes til slutningen" >> tekstfil.txt
echo "overskriver" > tekstfil.txt

# cat flere filer sammen
cat fil1.txt fil2.txt fil3.txt > alle.txt
cat fil4.txt >> alle.txt


og mere specifikt det du leder efter er nok noget i retningen af det her:

cat > filnavn.txt << EOF
Denne tekst vil overskrive
alt hvad der er i filnavn.txt
fordi jeg kun brugte en enkelt > efter cat
EOF

cat >> filnavn.txt << EOF
Derimod vil denne blok blive tilføjet
i bunden af filnavn.txt
EOF

  • Log ind eller opret dig for at tilføje kommentarer

# 2

14 år 9 måneder siden

Permalink

Indsendt af divineant den 14. september 2010 kl. 01:51

Permalink

Hov, jeg misforstod da vist

Hov, jeg misforstod da vist dit spørgsmål, du vil tilføje den samme tekst til samtlige linier.

Det kan du gøre med sed

sed 's|$|tilføjes|g' -i filnavn.txt

eller smid output i en ny fil

cat filnavn.txt | sed 's|$|tilføjes|g' > ny_fil.txt

eller traverser alle linier manuelt

cat filnavn.txt | while read line; do
if procedure_der_tester_på $line; then
echo $line tilføjes
fi
done > ny_fil.txt
  • Log ind eller opret dig for at tilføje kommentarer

# 3

14 år 9 måneder siden

Permalink

Indsendt af peters den 14. september 2010 kl. 03:35

Permalink

Tak, det virker...

Findes der en commando til at indsætte et "tab" mellemrum

  • Log ind eller opret dig for at tilføje kommentarer

# 4

14 år 9 måneder siden

Permalink

Indsendt af divineant den 14. september 2010 kl. 09:25

Permalink

Det kan du også med

Det kan du også med sed,echo og cat
sed:

sed 's|$|\tmed tabulator|g' -i filnavn.txt


echo:

echo -e "\tmed tabulator"


cat:

cat >> filnavn << EOF
cat skriver præcis hvad du skriver, incl specialtegn
som f.eks tabulator
EOF
  • Log ind eller opret dig for at tilføje kommentarer

# 5

14 år 9 måneder siden

Permalink

Indsendt af peters den 14. september 2010 kl. 14:42

Permalink

Mange tak for hjælpen...

Det virker perfekt.. Tak igen for svaret.
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0
Linux fra begynder til professionel af O'Reilly 0

Seneste aktivitet

Nulstilling af adgangskode 6
Virtuel maskine? 2
PCLinuxOS 27
Gode anmeldelser Zorin OS 17.3 3
Open Source-eksperimentet 3
"Intet realistisk alternativ" - mig i r*ven 15
Ingen Mint 5
Linux App Store Flathub når 3 milliarder downloads 2
Digitaliseringsministeriet sætter gang i pilotprojekt om digital suverænitet 3
Mest sikker webbrowser 5
Firefox 2
Privatbeskeder 7
Backup/synkronisering? 3
BigLinux 5
Chatgpt satire 1
Læsning af databasefil i Firefox 2
Vanilla OS 15
Pepsi Challenge 4
Linuxin er nu migreret til Drupal 11 13
Et Dansk alternativ til Facebook 18

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !