2012-09-06 27 views
10

Redirection vào một tập tin là rất hữu ích để nối thêm một chuỗi như một dòng mới vào một tập tin, nhưLàm cách nào để nối các chuỗi vào cùng một dòng thay vì tạo một dòng mới?

echo "foo" >> file.txt 
echo "bar" >> file.txt 

Kết quả:

foo 
bar 

Nhưng nó cũng có thể chuyển hướng một chuỗi với cùng dòng trong tập tin?

Ví dụ:

echo "foo" <redirection-command-for-same-line> file.txt 
echo "bar" <redirection-command-for-same-line> file.txt 

Kết quả:

foobar 

Trả lời

32

Các newline được bổ sung bởi echo, không phải do chuyển hướng. Chỉ cần vượt qua -n chuyển sang echo để ngăn chặn nó:

echo -n "foo" >> file.txt 
echo -n "bar" >> file.txt 

-n không đầu ra các ký tự dòng mới

+0

Tính năng này hoạt động tốt. Mặc dù người ta phải cẩn thận rằng không có 'dòng trống' ở phần cuối của một tập tin. –

1

Một cách thay thế để echo kết quả cho một dòng sẽ chỉ đơn giản là gán kết quả cho biến. Ví dụ:

j=$(echo foo) 
i=$(echo bar) 
echo $j$i 
foobar 
echo $i $j 
bar foo 

Điều này đặc biệt hữu ích khi bạn có nhiều chức năng phức tạp hơn, có thể ghép nối một ô cụ thể trong một hàng, sau đó ghép nó với bộ khác.

Các vấn đề liên quan