Thay thế từ đầu tiên của mỗi dòng bằng MD5 của nó


0

Tôi có tập tin với hai từ cách nhau trong mỗi dòng. Tôi đang tìm kiếm shell scrip trong Unix để thay thế từ đầu tiên của mỗi hàng bằng biểu diễn băm md5 của nó.

Tôi đã cố gắng điều chỉnh những gì được đề cập trong Awk thay thế một cột bằng giá trị băm của nó .

Nhưng, những gì giải pháp này trả về cho giá trị băm md5 có vẻ sai.

md5(is) = a2a551a6458a8de22446cc76d639a9e9

1
Đó là bởi vì các câu trả lời awk có sử dụng echovà thêm một dòng mới ... Thay thế nó bằng printf %sbạn sẽ có được hàm băm đúng:a2a551a6458a8de22446cc76d639a9e9
don_crissti

Câu trả lời:


1

Đối với một câu trả lời không hiệu quả và có thể không tối ưu:

while read -r first rest; do
    echo "$(echo -n $first | md5sum | awk '{ print $1 }') $rest"
done <input_file

Điều này sẽ xáo trộn khoảng trắng giữa từ đầu tiên và phần còn lại của dòng, nhưng nên giữ nguyên khoảng cách giữa các từ tiếp theo, nếu có.

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.