linux⽂件内容列传⾏_⾏转列================ ⽂件内容列传⾏_⾏转列 ================
⼀、列转⾏
1、编辑测试⽂件
16:23:00
8.2%
1773620k
16:23:01
3%
1770024k
16:23:02
5.7%
1766272k
16:23:03
4%
1766160k
16:23:04
7.9%
1775436k
16:23:05
2.5%
1775488k
16:23:06
3.9%
1770340k
2、编辑列转⾏脚本
vi colline.sh
#!/bin/bash
while read col1 && read col2 && read col3;
do
echo -ne "$col1 $col2 $col3"
echo
done <$1
3、运⾏脚本
sh colline.
输出:
16:23:00 8.2% 1773620k
16:23:01 3% 1770024k
16:23:02 5.7% 1766272k
16:23:03 4% 1766160k
16:23:04 7.9% 1775436k
16:23:05 2.5% 1775488k
16:23:06 3.9% 1770340k
⼆、⾏转列
1、编辑测试⽂件
1 2 3 4 5
1 2 3 4 6
1 2 3 4 7
1 2 3 4 8
1 2 3 4 9
2 3 4 5 10
7 8 9 10 11
12 13 14 15 16
2、运⾏列转⾏_⾏转列命令
awk '{for(i=1;i<=NF;i++)a[NR,i]=$i}END{for(j=1;j<=NF;j++)for(k=1;k<=NR;k++)printf k==NR?a[k,j] RS:a[k,j] FS}' f.txt 输出:
1 1 1 1 1
2 7 12
2 2 2 2 2
3 8 13
3 3 3 3 3
4 9 14
4 4 4 4 4
5 10 15
5 6 7 8 9 10 11 16
备注:⽂件⾄少需要两列数据
===== ⽂件内容输出为⼀⾏
编辑⽂件:
1 2 3 4 5 6
a b c d e f
2 3 4 5 6 7
q a z w s x
3 4 5 6 7 8
awk -F "+" '{for(i=1;i<=NF;i++) a[i,NR]=$i}END{for(i=1;i<=NF;i++) {for(j=1;j<=NR;j++) printf a[i,j] " ";print ""}}'
输出:
1 2 3 4 5 6 a b c d e f 2 3 4 5 6 7 q a z w s x 3 4 5 6 7 8
|tr "\n" ","|sed -e 's/,$/\n/'
输出:
1 2 3 4 5 6,a b c d e f,2 3 4 5 6 7,q a z w s x,3 4 5 6 7 8
|tr "\n" " "|sed -e 's/,$/\n/'
输出:
1 2 3 4 5 6 a b c d e f 2 3 4 5 6 7 q a z w s x 3 4 5 6 7 8
--->⾏转列_列转⾏
linux怎么读取文件内容1 2 3 4 5 6 7 8
awk -F " +" '{for(i=1;i<=NF;i++) a[i,NR]=$i}END{for(i=1;i<=NF;i++) {for(j=1;j<=NR;j++) printf a[i,j] " ";print ""}}'
输出:
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
awk -F " +" '{for(i=1;i<=NF;i++) a[i,NR]=$i}END{for(i=1;i<=NF;i++) {for(j=1;j<=NR;j++) printf a[i,j] " ";print ""}}'
输出:
1 2 3 4 5 6 7 8
<end>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论