Điểm:0

Cách thêm cột khác

lá cờ ng

Tôi đang cố gắng biến một tệp như thế này thành một thứ gì đó ở dưới cùng. Tôi không chắc chắn về cách sử dụng awk hoặc dán để thực hiện việc này.

0.0000000000  0.0000000000  0.0000000000 
0.7804643317  0.5703578412   0.0000000000 
-0.7804643317  0.5703578412   0.0000000000 

Tôi sẽ xử lý số lượng hàng thay đổi cho tệp mà tôi đang cố chuyển đổi.

0.0000000000 0  0.0000000000 0  0.0000000000 0
0.7804643317 0  0.5703578412 0  0.0000000000 0
-0.7804643317 0  0.5703578412 0  0.0000000000 0
lá cờ cn
Ray
Tôi nghĩ ý của bạn là "số lượng hàng sẽ giữ nguyên ở mức ba, nhưng số lượng cột sẽ thay đổi"?
Điểm:4
lá cờ in

tôi muốn sử dụng sed:

tệp sed -i -E 's/([^ ]+)/\1 0/g'

hoặc nếu tệp được phân định bằng tab:

tệp sed -i -E 's/([^\t]+)/\1\t0/g'
  • -tôi chỉnh sửa tập tin tại chỗ.
  • s/mẫu/thay thế/ có nghĩa là mẫu thay thế bằng một chuỗi thay thế.

HOẶC awk

awk -i thay thế tệp '{cho (f=1;f<=NF; f++){$f=$f" 0"}}1'

hoặc

awk -i thay thế tệp '{cho (f=1;f<=NF; f++){$f=$f"\t0"}}1'

Tuy nhiên, hầu hết các triển khai không hỗ trợ -tôi tại chỗ. Sau đó, bạn cần ghi đầu ra của mình vào một tệp tạm thời và ghi đè lên tệp gốc bằng tệp đó:

awk '{for (f=1;f<=NF; f++){$f=$f" 0"}}1' tệp > tệp.tmp && tệp mv tệp.tmp
Điểm:2
lá cờ cn

Một cách tiếp cận Perl:

$ perl -ane 'in "$_ 0 " cho @F; in tập tin "\n"'
0.0000000000 0 0.0000000000 0 0.0000000000 0 
0.7804643317 0 0.5703578412 0 0.0000000000 0 
-0.7804643317 0 0.5703578412 0 0.0000000000 0 

Hoặc, để chỉnh sửa tệp gốc:

perl -i -ane 'in "$_ 0" cho @F; in tập tin "\n"'
Điểm:0
lá cờ mm

Đã thêm trợ giúp từ: https://unix.stackexchange.com/questions/11801/replace-all-white-spaces-with-commas-in-a-text-file

$cat text.file | sed 's/[[:blank:]]\+/\ 0\ /g'

 0.0000000000 0 0.0000000000 0 0.0000000000 0
 0.7804643317 0 0.5703578412 0 0.0000000000 0
 -0.7804643317 0 0.5703578412 0 0.0000000000 0

hoặc làm đẹp bằng cột:

$cat text.file | sed 's/[[:blank:]]\+/\ 0\ /g' | cột -t -e

 0.0000000000 0 0.0000000000 0 0.0000000000 0 
 0.7804643317 0 0.5703578412 0 0.0000000000 0
 -0.7804643317 0 0.5703578412 0 0.0000000000 0

Coi chừng tài khoản này cho các khoảng trống ở cuối chuỗi. Có thể muốn lọc với một sed trước đó.

 $cat text.file | sed 's/[[:blank:]]\+$//g' | sed 's/[[:blank:]]\+/\ 0\ /g' | cột -t -e

 0.0000000000 0 0.0000000000 0 0.0000000000 
 0.7804643317 0 0.5703578412 0 0.0000000000
 -0,7804643317 0 0,5703578412 0 0,0000000000
terdon avatar
lá cờ cn
Lưu ý rằng bạn không cần con mèo ở đó. Bạn có thể cung cấp tệp cho sed làm đối số. Bạn cũng không cần phải thoát khỏi không gian.
bac0n avatar
lá cờ cn
Bạn có thể muốn sử dụng một cái gì đó như `[[: blank:]]\+\|$` (mặc dù có khoảng trắng ở cuối ví dụ, nhưng dòng mới có thể phổ biến hơn).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.