Linux 文字行列轉換

2021-09-20 08:13:06 字數 592 閱讀 2878

使用awk進行行列轉換

假設有乙個檔案 test ,包含的資料遵循以下格式:

同一行資料,單詞之間為1個空格" "

每一行都有同樣多的資料,個數相同

處理命令:

awk '}endprint str}}' test

簡單說明:

nr - number of record - 當前處理的行是第幾行(因為awk是流處理工具,一行一行處理的,所以nr在不停的自增1);end裡面引用的nr,是處理完文字後的nr

fnr - file number of record - 當前處理的行是當前處理檔案的第幾行

nf - number of fileds - 當前行有多少列資料(這個在每行都會根據設定的分割符重新計算,預設分割符是任意連續的多個空白符)

處理過程簡析:

第一步是把文字裡的資料存入乙個2維陣列;存放的方式要和文字中的一模一樣;

awk處理文字時獲得了行列資料;nr表示處理了幾行文字,輸出結果就有nr列;nf表示文字的列數,輸出結果有nf行

在end模組裡處理2維陣列;把陣列的行轉為列,並存入另乙個2維陣列str中

最後列印出這個陣列str

基於文字行協議

很多網際網路上的協議例如http sip smtp ftp的控制連線協議都是基於文字行的。所謂基於文字行,指的是資訊以文字傳遞,乙個資訊單元傳遞完畢後要傳送換行。比如對於http的get請求來說,get index.html http 1.0 是一行,接下去每個頭部資訊各佔一行。乙個空行表示整個請求...

限制文字行數

1行 white space nowrap overflow hidden text overflow ellipsis ps 一定要指定容器的寬度,不然的話是沒有用的。多行 方法一 只支援 webkit核心,不支援火狐 方法二 不管怎樣,省略號都會出現,建議配合js,只有超出高度時,才顯示 aft...

mysql行列轉換 mysql行列轉換

1.一維轉二維 上圖為成績表中資料,現希望將資料轉換為下圖。靜態 轉化為二維表後的列名及列數是確定不變的,本例中即course只有數學 語文 英語這三門課。select s name,max if course 數學 score,0 as 數學,max if course 語文 score,0 as...