条件付きで列を2行に分割しますか?

条件付きで列を2行に分割しますか?

次の形式のファイルがあります。

 ⌚..⌛    watch..hourglass
 ⌨️       keyboard
 ⏏️       eject button

一部の行には2つの項目が含まれています。 2つの項目を含む行を次のように2つの行に分割したいと思います。

 ⌚       watch
 ⌛       hourglass
 ⌨️       keyboard
 ⏏️       eject button

これを行う簡単な方法はありますか?


私のスクリプト:

#!/usr/bin/env bash

wget -O output.txt http://www.unicode.org/Public/emoji/6.0/emoji-data.txt

sed -i '/^#/ d' output.txt                        # Remove comments                                                                                                          
sed -i 's/.*(//' output.txt                       # Remove columns not needed                                                                                               
sed -i 's|[(),]||g' output.txt                    # Remove brackets around emoji                                                                                         
sed -i 's/\(.*[^ ]\)[ ]*\(.*\)/\2 \1/' output.txt # Move first column to last                                                                         
sed -i '/^$/d' output.txt                         # Remove blank lines

次の質問に対する@RomanPerekhrestの答えを試しました。(回答が更新されました):

 ↔️..↙️    left-right arrow..down-left arrow
 ↩️..↪️    right arrow curving left..left arrow curving right
 ⌚..⌛    watch..hourglass done
 ⌨️       keyboard

時計/砂時計では動作しますが、上記の時計/砂時計では動作しません(?)

ベストアンサー1

修正する

一部の絵文字の後ろに表示される問題を修正しました。チェンジセレクタ 16、フォーマットエラーが発生します。

@jimmijの内容をご覧ください。回答、より最適化されたsedスクリプトを取得するには!

sed

 sed '/.\.\./ s/\(.\)\.\.\(\S*\)\s*\(.*\)\.\./\1\t\3\n \2\t/'

おすすめ記事