[英]How to format rows into columns, join every row untill a blank line is encountered using AWK
如果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
未設置,因此每個塊都被視為一條記錄。 $1=$1
使awk接觸每條記錄,因此將其重新格式化為用空格分隔的字段。 末尾的1
是{print}
的簡寫。
您可以按照以下建議使用sed ':a;N;$!ba;s/\\n/ /g' yourfile
: 如何使用sed替換換行符(\\ n)?
awk 'NF' file | paste - - -
會做的。 AWK命令刪除空白行,而paste命令使用制表符分隔3個字符串。 要用空格分隔3位,請使用
paste -d ' ' - - -
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.