shell 如何将纵列 转为横行
时间: 2024-09-26 20:09:20 浏览: 32
在python中只选取列表中某一纵列的方法
在Shell脚本中,如果你想将纵列数据转换为横行数据(也称为转置),可以使用`awk`、`tr`、`paste`或`column`命令。以下是几种常见的方法:
1. 使用`awk`:
```sh
awk '{for (i=1; i<=NF; i++) print $i}' file.txt > transpose.txt
```
这会遍历每一行的所有字段(NF表示字段数),并将每个字段单独打印到新文件。
2. 使用`tr`和`paste`:
```sh
tr '\n' ' ' < file.txt | paste -sd ' ' > transpose.txt
```
先用`tr`将换行符替换为空格,然后用`paste`合并所有行,生成一个新的字符串。
3. 使用`column`(如果可用):
```sh
column -t file.txt > transpose.txt
```
`column`直接按制表符对齐并转置表格。
4. 或者用`sort -z`配合`uniq -c`(适用于数字统计而非文本):
```sh
sort -z file.txt | uniq -c | awk '{print $2 " " $1}' > transpose.txt
```
这里先排序并计数行,再按行计数值和原始行分开。
阅读全文