Tập lệnh Bash để lưu trữ các từ trong tệp trong biến khác nhau [đã đóng]


-1

Tôi có một nhu cầu lưu trữ các tập tin từ mẫu trong biến khác nhau. Giống như tôi có một tập tin test.txtchứa nội dung dưới đây:

uname : null empty amarjeet sharma
ver   : null 1.2 empty 1.3 1.4
txn   : null 123 124 empty 125

Điều cần thiết là lưu trữ từ trước dấu hai chấm trong một biến và còn lại trong một mảng tạo thành mỗi dòng.

Ví dụ: unameđược lưu trữ trong var và ramained được lưu trữ trong value[]mảng

var = uname
value[] ={null, empty, amarjeet, sharma}
var1 = ver
value1[] = {null, 1.2, empty, 1.3, 1.4}
etc

Tập tin của bạn chỉ chứa ba dòng?
Cyrus

@Cyrus Không thưa ngài !!!!! nó có thể chứa nhiều dòng và nhiều cột theo nhu cầu.
Abhijatya Singh

@AbhijatyaSingh Những gì bạn đang yêu cầu là có thể nhưng, với khả năng của bash, nó khá khó xử. Bạn có thể muốn giải thích thêm về những gì bạn đang làm để mọi người có thể đề xuất một thiết kế dữ liệu phù hợp hơn hoặc một ngôn ngữ phù hợp hơn.
John1024

@ John1024 ạ !!!! Tôi đã tạo các tệp xml dựa trên đầu vào tệp thử nghiệm được đưa ra bởi một số nhóm khác.
Abhijatya Singh

Câu trả lời:


1

Thử đi:

declare -A hash  # create associative array
declare -a array # create array

# first part: read file to associative array hash
c=0
while IFS=" :" read hash[$c,0] hash[$c,1]; do
  ((c++))
done < filename

# second part: print hash and array
for ((i=0;i<$c;i++)); do
  # create array from hash with part right from :
  array=(${hash[$i,1]})
  echo "${hash[$i,0]} ->  ${array[@]}"
done

Đầu ra:

uname -> null rỗng amarjeet sharma
ver -> null 1.2 trống 1.3 1.4
txn -> null 123 124 trống 125
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.