Shell-Script
剪切和轉置文件的某些行
我有 1344 行數據列。我想從我的輸入數據文件中形成 32 行 x 42 列。我想剪切前 42 行並粘貼到 42 列數據中的一個原始數據,然後同樣繼續向下。我的數據排列為
文件名:data.txt
1 2 3 . . . 1344
我希望結果是 output.txt
1 2 3 ....42 43 44 84 . . . 1303 1304 . . . 1344
我希望你幫我寫一個可以做到的腳本。
這些應該工作:
awk '{if(n==41){n=0;print $0}else{printf "%s ",$0;n++}}' data.txt
或者
awk '{if(NR % 42 == 0){print;}else{printf "%s ",$0}}' data.txt
或者
perl -ne 'if($. % 42){chomp; print "$_ "}else{ print;}' data.txt
或者
perl -pne 's/\n/ / if $. % 42' data.txt
最簡單的方法是使用
rs
命令 - 如果可用:< original.file rs 0 42 > reshaped.file