テキストファイルを入力として使用し、スプレッドシートを出力として生成するシェルスクリプトを作成しています。以下に示すようなテキストファイルがあります。
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
タブ区切りのタイトルの作成cut
2番目のフィールドから行末まで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
私はこれを処理するより説得力のある方法があると確信しています。