Bash script untuk menghapus jeda baris?


9

Saya perlu skrip yang memasukkan file dan menggemakan isinya dengan linebreak dihapus - begitu kata dibungkus.

Saya sudah mencoba:

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

tapi itu tidak mengembalikan apa-apa.

Jawaban:


18

Coba lakukan ini:

echo $(cat $1)

1
Senang saya bisa membantu Anda menemukan satu dari banyak cara untuk sampai ke sana, tetapi coba Googling sedikit lebih banyak waktu berikutnya. Ini adalah apa yang saya dapatkan sebagai hasil kedua bermunculan menggunakan kata kunci bash, line, end, remove.
gertvdijk

@gertvdijk tahun telah berlalu, dan pertanyaan ini adalah apa yang saya dapatkan sebagai hasil pertama yang muncul menggunakan kata kunci yang sama sekarang :)
Jorge Suárez de Lis

cara non-skrip / cmdline adalahecho `cat some_file.ext`
nmz787

7

Saya menemukan jawaban yang relevan ini di stackoverflow:

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

Cara tercepat tampaknya menggunakan tr:

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

atau untuk contoh Anda:

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

Untuk mempelajari lebih lanjut tentang trperintah, tentu saja man tr,.

The stackoverflow anser berisi cara untuk melakukan ini dengan sed (akan menjadi pilihan pertama saya, tetapi sed sangat berorientasi garis dan membuatnya tidak menafsirkan garis putus karena pembatas bidang itu misterius) dan cara menggunakan baca dan bash, dekat dengan Anda pendekatan awal.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.