假设我们有两个相互不相关的格式化字符串。#test.rb string_1 = "Title\nfoo bar\nbaz\nfoo bar baz boo“string_2 =”无关的标题\n狗猫农场\n太空月亮“
如何使用ruby或调用shell命令使这些字符串在终端中显示为列?关键是每个字符串的数据没有建立一个相关的行,即这不是一个表,而是两个列表并排。
Title Unrelated Title
foo bar dog cat farm
baz space moon
foo bar baz boo 发布于 2016-05-02 12:05:11
您可以尝试同时使用粘贴和列命令。请注意,这是一个shell命令,因此应该更正赋值操作符之间的空格。
$ 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命令使用|作为形成列的引用。
发布于 2016-05-02 12:35:50
在Ruby中,你可以这样做:
#!/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] }这会产生以下结果:
Title Unrelated Title
foo bar dog cat farm
baz space moon
foo bar baz boo发布于 2016-05-02 17:40:57
您好,如果您使用临时文件
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我希望它能有所帮助。
https://stackoverflow.com/questions/36974688
复制相似问题