首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有条件地将列分成两行?

有条件地将列分成两行?
EN

Unix & Linux用户
提问于 2017-08-21 15:16:20
回答 2查看 351关注 0票数 5

我有一个文件,格式是:

代码语言:javascript
运行
复制
 ⌚..⌛    watch..hourglass
 ⌨️       keyboard
 ⏏️       eject button

其中一些行包含两个条目。我想将2条条目分成2行,如下所示:

代码语言:javascript
运行
复制
 ⌚       watch
 ⌛       hourglass
 ⌨️       keyboard
 ⏏️       eject button

有什么快速的方法吗?

我的脚本:

代码语言:javascript
运行
复制
#!/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

the @RomanPerekhrest的答复如下(答复已更新):

代码语言:javascript
运行
复制
 ↔️..↙️    left-right arrow..down-left arrow
 ↩️..↪️    right arrow curving left..left arrow curving right
 ⌚..⌛    watch..hourglass done
 ⌨️       keyboard

它在手表/沙漏上工作,但不像上面的(?)

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2017-08-21 15:46:24

更新

修正了变体-选择器-16变体-选择器-16后面的一些表情符号出现的问题,导致格式化错误。

有关更优化的sed脚本,请参见@jimmij的回答

sed

代码语言:javascript
运行
复制
 sed '/.\.\./ s/\(.\)\.\.\(\S*\)\s*\(.*\)\.\./\1\t\3\n \2\t/'
票数 4
EN

Unix & Linux用户

发布于 2017-08-21 16:39:27

另一个sed版本,基于齐柏林飞艇回答,但更简单和对齐-注意,unicode并不总是单一字符。用gnu sed进行测试。

代码语言:javascript
运行
复制
sed 's/\.\.\([^ ]*\) *\(.*\)\.\./\t\2\n \1\t/'

输出:

代码语言:javascript
运行
复制
 ↔️      left-right arrow
 ↙️      down-left arrow
 ↩️      right arrow curving left
 ↪️      left arrow curving right
 ⌚      watch
 ⌛      hourglass done
 ⌨️       keyboard
票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/387455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档