このようなタブで区切られたデータを変換する最も効率的な方法は何ですか?
a b c d cat
NULL NULL NULL NULL NULL
NULL NULL NULL d d
NULL NULL c NULL c
NULL NULL c d c; d
NULL b NULL NULL b
NULL b NULL d b; d
NULL b c NULL b; c
NULL b c d b; c; d
a NULL NULL NULL a
a NULL NULL d a; d
a NULL c NULL a; c
a NULL c d a; c; d
a b NULL NULL a; b
a b NULL d a; b; d
a b c NULL a; b; c
a b c d a; b; c; d
これに近いもの:
a | b | c | d | cat
-----+------+------+------+-----------
NULL | NULL | NULL | NULL | NULL
NULL | NULL | NULL | d | d
NULL | NULL | c | NULL | c
NULL | NULL | c | d | c; d
NULL | b | NULL | NULL | b
NULL | b | NULL | d | b; d
NULL | b | c | NULL | b; c
NULL | b | c | d | b; c; d
a | NULL | NULL | NULL | a
a | NULL | NULL | d | a; d
a | NULL | c | NULL | a; c
a | NULL | c | d | a; c; d
a | b | NULL | NULL | a; b
a | b | NULL | d | a; b; d
a | b | c | NULL | a; b; c
a | b | c | d | a; b; c; d
現在、次のようにNotepad ++を使用しています。
- タブをスペースに変換する
- データを手動で調整する
- 列モードを使用してパイプを挿入する
2番目のステップは最も退屈なステップであり、少なくともこの部分は自動化したいです。
注:作業時にはブラウザを使用し、テキストエディタを横に開いている場合があります。効率的なソリューションは、最小限の労力しか必要としないソリューションです。使うことができます:
- メモ帳++
- 正規表現の検索/置換をサポートする汎用テキストエディター
- ブラウザコンソール内で入力されたJavaScript
- オンラインウェブサービス
- コマンドラインのPHP(
php -a
)
awk
スクリプトです。
{{(⊃⍵)⍪⍉⍪↑¨↓⍉↑1↓⍵}s¨'⎕T'⎕T¨(s←1↓¨⊢⊂⍨⊢=⊃)¯1⌽⍵}
えっ、上で動作するように素敵な十分なようだ?)