![出力ファイルの目的の位置にカットフィールドを配置する[閉じる]](https://linux33.com/image/55636/%E5%87%BA%E5%8A%9B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E7%9B%AE%E7%9A%84%E3%81%AE%E4%BD%8D%E7%BD%AE%E3%81%AB%E3%82%AB%E3%83%83%E3%83%88%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
cut
入力ファイルからフィールドを取得して出力ファイルに追加するスクリプトを作成しています。
cat $1|while read line
do
acc_no=`echo "$line" | cut -c29-43`
acc_type=`echo "$line"|cut -c124-125`
echo "$acc_no","$acc_type" >> out.csv
done
ここでは、「、」を使用して区切ります。これで、出力ファイルに次のような内容がありたいと思います。
acc_no
20 to 33
acc_type
出力ファイルの場所から出力ファイルの場所から1 to 2
区切り文字は必要なく、場所ごとにこれらのアイテムにアクセスしたいと思います。
どうすればいいですか?
答え1
努力する
printf "%-2s%18s%s\n" $acc_type " " $acc_no >> out.csv
書式文字列は次のとおりです。
- %2s: 2 文字幅の列、左揃え
- %18s: 幅は 18 文字で空です。
- %sa 文字列です。