linux中如何把多行数据变为一列数据
1、测试数据
root@PC1:/home/test2# ls test.txt root@PC1:/home/test2# cat test.txt ## 测试数据 a 3 5 d s g e z
2、sed 实现
root@PC1:/home/test2# ls test.txt root@PC1:/home/test2# cat test.txt a 3 5 d s g e z root@PC1:/home/test2# sed 's/ /\n/g' test.txt a 3 5 d s g e z
3、cat + tr实现
root@PC1:/home/test2# ls test.txt root@PC1:/home/test2# cat test.txt a 3 5 d s g e z root@PC1:/home/test2# cat test.txt | tr " " "\n" a 3 5 d s g e z
4、xargs实现
root@PC1:/home/test2# ls test.txt root@PC1:/home/test2# cat test.txt a 3 5 d s g e z root@PC1:/home/test2# cat test.txt | xargs -n 1 a 3 5 d s g e z
5、awk实现
root@PC1:/home/test2# ls test.txt root@PC1:/home/test2# cat test.txt a 3 5 d s g e z root@PC1:/home/test2# awk '{gsub(" ","\n"); print $0}' test.txt a 3 5 d s g e z
root@PC1:/home/test2# ls test.txt root@PC1:/home/test2# cat test.txt a 3 5 d s g e z root@PC1:/home/test2# awk 'BEGIN{RS = " "} {print $0}' test.txt a 3 5 d s g e z root@PC1:/home/test2# awk 'BEGIN{RS = " "} {print $0}' test.txt | sed '$d' a 3 5 d s g e z
6、测试数据
root@PC1:/home/test2# ls test.txt root@PC1:/home/test2# cat test.txt a35d sgez
7、sed + awk实现
root@PC1:/home/test2# ls test.txt root@PC1:/home/test2# cat test.txt a35d sgez root@PC1:/home/test2# cat test.txt | sed 's/./&\n/g' a 3 5 d s g e z root@PC1:/home/test2# cat test.txt | sed 's/./&\n/g' | awk NF a 3 5 d s g e z
root@PC1:/home/test2# ls test.txt root@PC1:/home/test2# cat test.txt a35d sgez root@PC1:/home/test2# sed 's/./&\n/g' test.txt a 3 5 d s g e z root@PC1:/home/test2# sed 's/./&\n/g' test.txt | sed '/^[\t ]*$/d' a 3 5 d s g e z
8、awk实现
root@PC1:/home/test2# ls test.txt root@PC1:/home/test2# cat test.txt a35d sgez root@PC1:/home/test2# awk -F "" '{for(i = 1; i <= NF; i++) printf("%s", $i"\n")}' test.txt a 3 5 d s g e z