Bash script per rimuovere le interruzioni di riga?


9

Ho bisogno di uno script che inserisca un file ed echi il suo contenuto con le interruzioni di riga rimosse - "parola racchiusa" per così dire.

Ho provato:

#!/bin/bash
find $HOME '$1' | while read line; do echo "${line}"; done

ma non restituisce proprio nulla.

Risposte:


18

Prova a fare questo:

echo $(cat $1)

1
Sono contento di averti aiutato a trovare uno dei tanti modi per arrivarci, ma la prossima volta prova a cercare su Google un po 'di più. Questo è quello che ho ottenuto un secondo risultato spuntando utilizzando le parole chiave bash, line, end, remove.
gertvdijk,

Sono trascorsi anni @gertvdijk, e questa domanda è cosa ho ottenuto come primo risultato spuntando usando parole chiave simili ora :)
Jorge Suárez de Lis

il modo non script / cmdline èecho `cat some_file.ext`
nmz787

7

Ho trovato questa risposta pertinente in StackOverflow:

/programming/1251999/sed-how-can-i-replace-a-newline-n

Il modo più veloce sembra usare tr:

tr '\n' ' ' </your/file

o per il tuo esempio:

cat `find $HOME '$1"` | tr '\n' ' '

Per saperne di più sul trcomando di fare, naturalmente, man tr.

Stackerflow Anser contiene modi per farlo con sed (sarebbe stata la mia prima scelta, ma sed è molto orientato alla linea e indurlo a non interpretare le interruzioni di linea come delimitatori di campo è arcano) e un modo usando read e bash, vicino al tuo approccio iniziale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.