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