Bash
如何從bash中文本文件的行和列中獲取值?
我正在做一個 bash 項目。我需要從文本文件中獲取所有值(一次一個,因為我將在其他地方使用它們)。我將得到的文本文件結構如下:
Report: ----------- Name Column1 Column2 Column3 Column4 row1 val1 val2 val3 val4 row2 val5 val6 val7 val8 row3 val9 val10 val11 val12
沒有固定數量的行和列,所以我需要一些通用的東西。如何在 bash 中逐個檢索每個 val?謝謝。
bash
while
您可以使用循環逐行處理文件的內容:i=1 while IFS= read -a line; do printf "Line number %d:\n" $i printf "%s\n" "${line[@]}" let i++ done < "file.txt"
每行儲存在 array 中,您可以通過語法
line
獲取 array 的每個元素:line
echo "${line[n]}"
其中
n
是數組中元素的順序。
並通過 awk 命令,
$ awk '/^Report|^-----|^Name/ {next}{for (i=2;i<=NF;i++){print $i}}' file val1 val2 val3 val4 val5 val6 val7 val8 val9 val10 val11 val12
它跳過開頭的行,
Report,---,Name
並為每一行列印從第二列到結尾的所有值。這些值以換行符列印。