珀尔

珀尔

我的文本文件中的数据和预期的输出格式如图所示。

图片1

我试过:

cat test2.txt | tr -d "\t" 

但这是行不通的。请帮忙。因为我必须以预期的输出格式读取文件并进行进一步的循环处理。

答案1

使用 awk:

BEGIN { RS = "" ; }

{
    printf "%s %s %s %s %s %s %s\n", $1, $2, $3, $4, $5, $6, $7
}

产生:

WEBA 30-MAR-17 NA NOT_STARTED 01-APR-17 25-MAR-17 Target_Not_Started
WEBA 29-MAR-17 NA NOT_STARTED 01-APR-17 25-MAR-17 Target_Not_Started
WEBA 28-MAR-17 NA STARTED 01-APR-17 25-MAR-17 Target_Started

答案2

如果需要,您可以使用 bash。使用循环和 if 条件,例如:

#!/bin/bash
filename="/root/a.txt"

while  read -r line
do
 if [ "$line" != "" ]; then

 echo $line |tr -d "\n"

else
 echo   ""
fi

done <"$filename"

答案3

珀尔

perl -l -00pe 'y/\n/ /' yourfile | column -t

塞德

< yourfile \
   sed -ne '
      /^WEBA/,/^$/!d
      /^$/g
      s/\n/ /gp
      H
      /^WEBA/h
   ' \
| column -t

相关内容