そこにライジングキャラクターがありますかawk
?私は次のようなものを見つけました。ここしかし、うまくいきません。
次の場合:
97
ARE
3
NL
1303
1
140
USA
履歴が数値でない場合は、次のように印刷する必要があります。
97,ARE
3,NL
1303
1
140,USA
ベストアンサー1
カーソルを移動しようとするよりも、プログラムでこの問題を処理する方が良いと思います。
awk '/^[[:digit:]]+$/ { if (length(prev) > 0) { print prev }; prev = $0 } !/^[[:digit:]]+$/ { print (length(prev) > 0 ? prev : "") "," $0; prev = ""} END { if (length(prev) > 0) { print prev } }'
所望の出力が生成される。前の行を記憶し、prev
次の行に数字の内容があるかどうかに応じて単独で印刷するか、カンマと現在の行を一緒に印刷します。
以下は、わかりやすくフォーマットされたAwkの一部です。
/^[[:digit:]]+$/ {
if (length(prev) > 0) {
print prev
}
prev = $0
}
!/^[[:digit:]]+$/ {
print (length(prev) > 0 ? prev : "") "," $0
prev = ""
}
END {
if (length(prev) > 0) {
print prev
}
}
本当にキャラクターレベルを上げたいなら確認してみてください。tput
そしてterminfo
エスケープシーケンス:
tput cuu1
カーソルを1行上に移動します。