ฉันมีเชลล์สคริปต์ง่ายๆที่ลบช่องว่างต่อท้ายออกจากไฟล์ มีวิธีใดบ้างที่จะทำให้สคริปต์นี้กะทัดรัดมากขึ้น (โดยไม่ต้องสร้างไฟล์ชั่วคราว)
sed 's/[ \t]*$//' $1 > $1__.tmp
cat $1__.tmp > $1
rm $1__.tmp
catเพื่อเขียนทับไฟล์ต้นฉบับแทนที่จะmvแทนที่ข้อมูลในไฟล์ต้นฉบับจริงๆ (กล่าวคือจะไม่ทำลายฮาร์ดลิงก์) การใช้sed -iตามที่เสนอในหลาย ๆ โซลูชันจะไม่ทำเช่นนั้น IOW เพียงแค่ทำในสิ่งที่คุณกำลังทำอยู่
mvแทนและcatrmทำไมคุณถึงใช้catแบบนั้นล่ะ? ทำไมไม่ใช้cp?