Tôi có hai tệp khác nhau:
Tệp1
/home/user1/
/home/user2/bin
/home/user1/a/b/c
Tệp2
<TEXT1>
<TEXT2>
Tôi muốn thay thế <TEXT1>
của File2 với các nội dung của File1 sử dụng sed
. Tôi đã thử lệnh này, nhưng không nhận được đầu ra thích hợp:
cat File2|sed "s/<TEXT1>/$(cat File1|sed 's/\//\\\//g'|sed 's/$/\\n/g'|tr -d "\n")/g"
Bạn có thể sử dụng các công cụ khác cũng để giải quyết vấn đề này.
/home/user1/ n/home/user2/bin n/home/user1/a/b/cn <TEXT2>
. Không nhận được dòng mới.
diff
và patch
các công cụ cho phép thay thế một số dòng trong một tệp bằng các dòng khác khá dễ dàng.
$()
trong một tập lệnh sed khiến mắt tôi chảy máu. Không bao giờ sử dụng dữ liệu ngoài ở những nơi mà một số ký tự được diễn giải với ý nghĩa đặc biệt.
sed
bạn đang sử dụng triển khai nào. Mã của bạn hoạt động với tôi với GNUsed
.