Làm thế nào để loại bỏ bất kỳ chuỗi từ một tập tin thông qua shell script?


9

Tôi cố gắng loại bỏ chuỗi từ .bash_profile. Chuỗi được thêm khi tập lệnh shell của tôi chạy:

Chuỗi của tôi tại bash_profile như sau:

# for Myapllication
export MYAPP_HOME=/opt/myapp

Tôi muốn xóa các chuỗi từ .bash_profilekhi myapp được gỡ bỏ thông qua rpm.

Làm thế nào để loại bỏ bất kỳ chuỗi từ một tập tin thông qua shell script? (hoặc phương pháp thay thế có thể)

Câu trả lời:


11

Bạn có thể xóa một chuỗi khỏi tệp văn bản bằng sed (các công cụ khác tồn tại).

Ví dụ:

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

loại bỏ khỏi .bash_profile mọi dòng chứa chuỗi myapp.


10

Một tập tin như ~/.bash_profilesống trong một thư mục nhà của người dùng. Một tập tin như vậy là hoàn toàn dưới sự kiểm soát của người dùng. Các lệnh hành động toàn cầu như rpmkhông được yêu cầu thay đổi các tệp như vậy.

  • Bạn thường có một tệp cấu hình cơ sở, được phân phối bởi gói vòng / phút.

  • Sau đó, bạn có một tệp cấu hình toàn cầu có thể được sử dụng bởi root để ghi đè lên một số tùy chọn cụ thể cho hệ thống nhất định.

  • Sau đó, bạn có các tệp cấu hình cá nhân trong thư mục chính của mình mà bạn có thể sử dụng để ghi đè cài đặt chung với tùy chọn cá nhân của mình.

Một lệnh như rpmchỉ nên thay đổi cái đầu tiên và không bao giờ thay đổi cái sau.


Bạn có thể đề xuất một URL để kiểm tra chủ đề này?
Gyhot

1
@Gyhot unix.stackexchange.com/questions/77518/ khăn là một cái tốt. Nếu phân phối mục tiêu của bạn có một /etc/profile.dthư mục, hãy thả một tệp chứa exportdòng đó ở đó. Nếu không, bạn có thể chỉnh sửa /etc/profile, nhưng hãy cẩn thận để không phá hỏng các tùy chỉnh của quản trị viên hệ thống.
Gilles 'SO- ngừng trở nên xấu xa'


0

Hãy thử cách vim:

ex -s +"g/MYAPP_HOME/d" -cwq file.txt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.