真珠

真珠

私のテキストファイルのデータと予想される出力形式は次のとおりです。

図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

関連情報