Bash script เพื่อลบตัวแบ่งบรรทัด?


9

ฉันต้องการสคริปต์ที่ป้อนไฟล์และ echos เนื้อหาด้วยการลบ linebreaks - "คำที่ห่อหุ้ม" เพื่อที่จะพูด

ฉันได้พยายาม:

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

แต่มันก็ไม่ได้ผลตอบแทนอะไรเลย

คำตอบ:


18

ลองทำสิ่งนี้:

echo $(cat $1)

1
ดีใจที่ฉันสามารถช่วยคุณหาการได้รับหนึ่งในหลายวิธีที่จะได้รับมี แต่ลอง Googling อีกครั้งในครั้งต่อไป นี้คือสิ่งที่ผมได้รับเป็นผลมาสอง popping ขึ้นโดยใช้คำหลักbash, line, ,end remove
gertvdijk

@gertvdijk ปีที่ผ่านมาและคำถามนี้คือสิ่งที่ฉันได้รับเป็นผลครั้งแรกที่โผล่ขึ้นมาโดยใช้คำหลักที่คล้ายกันตอนนี้ :)
Jorge Suárez de Lis

วิธีที่ไม่ใช่สคริปต์ / cmdline คือecho `cat some_file.ext`
nmz787

7

ฉันพบคำตอบที่เกี่ยวข้องใน stackoverflow:

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

วิธีที่เร็วที่สุดที่ดูเหมือนจะใช้ tr:

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

หรือตัวอย่างของคุณ:

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

ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่งทำของหลักสูตรtrman tr

stackoverflow anser มีวิธีการทำเช่นนี้กับ sed (จะเป็นตัวเลือกแรกของฉัน แต่ sed เป็นบรรทัดที่มุ่งเน้นและทำให้ไม่ตีความตัวแบ่งบรรทัดเนื่องจากตัวคั่นฟิลด์เป็นส่วนโค้ง) และวิธีการอ่านและทุบตีใกล้กับคุณ วิธีการเริ่มต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.