如果sample.txt有如下数据
Employee_id 101
Dept_id 10
Salary 2000
Employee_id 102
Dept_id 20
Salary 3000
Employee_id 103
Dept_id 30
Salary 3000
我希望看到如下输出
Employee_id 101 Dept_id 10 Salary 2000
Employee_id 102 Dept_id 20 Salary 3000
Employee_id 103 Dept_id 30 Salary 3000
最佳答案
使用 awk 的简单方法:
$ awk -v RS= '{$1=$1}1' file
Employee_id 101 Dept_id 10 Salary 2000
Employee_id 102 Dept_id 20 Salary 3000
Employee_id 103 Dept_id 30 Salary 3000
记录分隔符 RS
未设置,因此每个 block 都被视为一条记录。 $1=$1
使 awk 接触每条记录,以便将其重新格式化为由空格分隔的字段。末尾的 1
是 {print}
的简写。
关于linux - 如何将行格式化为列,连接每一行直到使用 AWK 遇到空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30379099/