テキストファイルからスプレッドシートを作成する

テキストファイルからスプレッドシートを作成する

テキストファイルを入力として使用し、スプレッドシートを出力として生成するシェルスクリプトを作成しています。以下に示すようなテキストファイルがあります。

Name:John
Age:30
Gender:male
Name:Bob
Age:65
Gender:Male

そしてこのパターンは何度も何度も繰り返されます。以下のように、名前、年齢、性別のフィールドを含むスプレッドシートを作成する必要があります。

Name Age Gender
John 30  Male
Bob  65  Male

どんな助けでも大変感謝します。

答え1

Excelにインポートする準備ができたタブで区切られたテキストファイルを作成します。

printf "Name\tAge\tGender\n" > outfile
cut -d: -f2- <infile | paste - - - >> outfile
  • printfタブ区切りのタイトルの作成
  • cut2番目のフィールドから行末まで
  • paste出力をタブ区切りの3つの列にフォーマットし、出力ファイルを変更します。

コマンドをグループ化して一度だけリダイレクトすることもできます。

{
printf '%s\t%s\t%s\n' Name Age Gender
cut -d: -f2- <infile | paste - - -
} > outfile

答え2

ファイルに常にレコードごとに3行が含まれている場合は、次のようになります。

echo "Name Age Gender" >>OUTPUT.txt; xargs -n 3 < INPUTFILE.txt |sed 's/Name:\|Age:\|Gender://g' >> OUTPUT.txt

私はこれを処理するより説得力のある方法があると確信しています。

関連情報