จะลบสตริงจากไฟล์ผ่านเชลล์สคริปต์ได้อย่างไร?


9

.bash_profileฉันพยายามที่จะลบสตริงจาก เพิ่มสตริงเมื่อสคริปต์เชลล์ของฉันทำงาน:

สตริงของฉันที่ bash_profile ดังนี้:

# for Myapllication
export MYAPP_HOME=/opt/myapp

ฉันต้องการที่จะลบสตริงจาก.bash_profileเมื่อ myapp rpmจะถูกลบออกผ่านทาง

จะลบสตริงจากไฟล์ผ่านเชลล์สคริปต์ได้อย่างไร (หรือวิธีอื่นที่เป็นไปได้)

คำตอบ:


11

คุณสามารถลบสตริงออกจากไฟล์ข้อความด้วยsed (มีเครื่องมืออื่น ๆ อยู่)

ตัวอย่างเช่น:

sed -i -e '/myapp/d' .bash_profile

เอาจากบรรทัดที่มีสตริงทุก.bash_profile myapp


10

ไฟล์เช่น~/.bash_profileอาศัยอยู่ในไดเรกทอรีบ้านของผู้ใช้ ไฟล์ดังกล่าวอยู่ภายใต้การควบคุมของผู้ใช้อย่างสมบูรณ์ คำสั่งการแสดงทั่วโลกเช่นrpmนั้นไม่ควรเปลี่ยนไฟล์ดังกล่าว

  • คุณมักจะมีไฟล์กำหนดค่าพื้นฐานซึ่งจัดส่งโดยแพ็คเกจ rpm

  • จากนั้นคุณมีไฟล์กำหนดค่าส่วนกลางซึ่งสามารถใช้โดยรูทเพื่อเขียนทับการกำหนดค่าตามความชอบเฉพาะของระบบที่กำหนด

  • จากนั้นคุณมีไฟล์กำหนดค่าส่วนบุคคลในโฮมไดเร็กตอรี่ของคุณซึ่งคุณสามารถใช้เพื่อแทนที่การตั้งค่าส่วนกลางด้วยการตั้งค่าส่วนตัวของคุณ

คำสั่งเช่นrpmควรเปลี่ยนเพียงครั้งแรกและไม่เคยเปลี่ยนหลัง


คุณสามารถแนะนำ URL เพื่อตรวจสอบหัวข้อนี้ได้หรือไม่?
Gyhot

1
@Gyhot unix.stackexchange.com/questions/77518/…เป็นสิ่งที่ดี หากการกระจายเป้าหมายของคุณมี/etc/profile.dไดเรกทอรีให้วางไฟล์ที่มีexportบรรทัดนั้น มิฉะนั้นคุณสามารถแก้ไข/etc/profileได้ แต่ต้องระวังไม่ให้ผู้ดูแลระบบทำการอัปเดตเอง
Gilles 'หยุดความชั่วร้าย'


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