[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ArchLinuxVn] Xóa bớt một số dòng trong History Output



chắc ý bác maikhai là việc thực thi các lệnh history -d # lại được add vào history. Nếu như vậy thì bác maikhai nghiên cứu cách đưa một lệnh ko vào trong history và HISIGNORE nhé


2012/11/29 Anh K. Huynh <[email protected]>
On Thu, 29 Nov 2012 05:35:37 -0800 (PST)
maikhai <[email protected]> wrote:

> Câu hỏi là: Muốn xóa ví du từ dòng 200 đến 234 bằng một lệnh duy nhất
> thì phải gõ thế nào? Bạn nào biết xin vui lòng chỉ giáo. Cám ơn trước.

Câu hỏi của bác rất hay. không dễ giải quyết tí nào :D  Giả định rằng
bách đang dùng Bash shell. Nó lưu `history` ở hai nơi: bộ đệm của Bash,
và tập tin (mặc định là `~/.bash_history`). Do định dạng ở tập tin
`~/.bash_history` tùy vào biến $HISTTIMEFORMAT nên việc dùng `sed` là
cách không ổn.

Dưới đây là cách: Ví dụ để xóa từ dòng 200 đến 234, tức cần xóa 35
dòng, thì thử:

  for i in `seq 1 35`; do history -d 200; done

Không thể dùng

  for i in `seq 200 234`; do history -d $i; done

vì sau mỗi khi thực hiện `history -d #index` thì Bash sẽ đánh số lại
cho các entry, do đó entry 201 sẽ trở thành entry 200 sau khi entry 200
bị xóa đi.

Chính xác là : thực hiện 35 lần xóa entry thứ 200, chứ không phải là:
xóa lần lượt entry từ 200 tới 234.

--
I am ... 5 dog years old.