簡體   English   中英

如何將行格式化為列,將每一行連接到一起,直到使用AWK遇到空白行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM