首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >显示唯一的Shell列

显示唯一的Shell列
EN

Stack Overflow用户
提问于 2016-05-02 11:43:05
回答 3查看 69关注 0票数 1

假设我们有两个相互不相关的格式化字符串。#test.rb string_1 = "Title\nfoo bar\nbaz\nfoo bar baz boo“string_2 =”无关的标题\n狗猫农场\n太空月亮“

如何使用ruby或调用shell命令使这些字符串在终端中显示为列?关键是每个字符串的数据没有建立一个相关的行,即这不是一个表,而是两个列表并排。

代码语言:javascript
复制
Title            Unrelated Title
foo bar          dog cat farm
baz              space moon
foo bar baz boo  
EN

回答 3

Stack Overflow用户

发布于 2016-05-02 12:05:11

您可以尝试同时使用粘贴和列命令。请注意,这是一个shell命令,因此应该更正赋值操作符之间的空格。

代码语言:javascript
复制
$ string_1="Title\nfoo bar\nbaz\nfoo bar baz boo"
$ string_2="Unrelated Title\ndog cat farm\nspace moon"
$ paste -d '|' <(echo -e "$string_1") <(echo -e "$string_2") | column -s'|' -t
Title            Unrelated Title
foo bar          dog cat farm
baz              space moon
foo bar baz boo

我们粘贴以|为分隔符的行,并告诉column命令使用|作为形成列的引用。

票数 4
EN

Stack Overflow用户

发布于 2016-05-02 12:35:50

在Ruby中,你可以这样做:

代码语言:javascript
复制
#!/usr/bin/env ruby

string_1 = "Title\nfoo bar\nbaz\nfoo bar baz boo"
string_2 = "Unrelated Title\ndog cat farm\nspace moon"

a1 = string_1.split("\n")
a2 = string_2.split("\n")

a1.zip(a2).each { |pair| puts "%-20s%s" % [pair.first, pair.last] }
# or
# a1.zip(a2).each { |left, right| puts "%-20s%s" % [left, right] }

这会产生以下结果:

代码语言:javascript
复制
Title               Unrelated Title
foo bar             dog cat farm
baz                 space moon
foo bar baz boo
票数 2
EN

Stack Overflow用户

发布于 2016-05-02 17:40:57

您好,如果您使用临时文件

代码语言:javascript
复制
string_1 = "Title\nfoo bar\nbaz\nfoo bar baz boo"
string_2 = "Unrelated Title\ndog cat farm\nspace moon"
echo -e $string_1 >a.txt
echo -e $string_2 >b.txt
paste a.txt b.txt

我希望它能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36974688

复制
相关文章

相似问题

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