各フィールドの長さが20文字の固定長行列型ファイルがあります。
- スペースで区切られたファイルにどのように変換できますか?
また、ハイフン()に置き換えたい欠落値もあります-
。
- どうすればいいですか?
出力作業をしawk
ます。
フィールド長が10文字のファイルのサンプル入力。
head1 head2 head3
a b c
c
c a
出力例
head1 head2 head3
a b c
- c -
c - c
ベストアンサー1
真珠:
perl -ne '
BEGIN {$width = 10}
while (length) {
($word = substr($_,0,$width)) =~ s/^\s+|\s+$//g; # trim whitespace
$word ||= "-";
print $word, " ";
substr($_,0,$width) = "";
}
print "\n";
' file