Ruby 在事物列表周围插入文本

Ruby 在事物列表周围插入文本,ruby,awk,sed,Ruby,Awk,Sed,这是一件很简单的事情,出于某种原因,我一直在逃避。我认为我应该能够通过一个非常简单的脚本或一行代码从bash提示符完成这项工作 我有一个文件,由一系列数字组成: 12345 23456 34567 45678 很简单。我想将其更改为: arglebargle-12345-fulferol-12345-applesauce arglebargle-23456-fulferol-23456-applesauce arglebargle-34567-fulferol-34567-applesauce

这是一件很简单的事情,出于某种原因,我一直在逃避。我认为我应该能够通过一个非常简单的脚本或一行代码从bash提示符完成这项工作

我有一个文件,由一系列数字组成:

12345
23456
34567
45678
很简单。我想将其更改为:

arglebargle-12345-fulferol-12345-applesauce
arglebargle-23456-fulferol-23456-applesauce
arglebargle-34567-fulferol-34567-applesauce
arglebargle-45678-fulferol-45678-applesauce
所以。。。在数字的两侧插入一个字符串(或者一个字符串,碰巧这些字符串是数字,不一定是数字)。。。然后附加原始字符串,并在其后放置第三个字符串

我想我更喜欢在sed或awk中作为一个单行程序来完成这项工作。或者作为ruby脚本。这应该是很容易的,因为某种原因,它正在逃避我的想法

像这样的

nums = %w(12345 23456 34567 45678)
nums.each { |num| puts "arglebargle-#{num}-fulferol-#{num}-applesauce" }
输出:

arglebargle-12345-fulferol-12345-applesauce
arglebargle-23456-fulferol-23456-applesauce
arglebargle-34567-fulferol-34567-applesauce
arglebargle-45678-fulferol-45678-applesauce
像这样的

nums = %w(12345 23456 34567 45678)
nums.each { |num| puts "arglebargle-#{num}-fulferol-#{num}-applesauce" }
输出:

arglebargle-12345-fulferol-12345-applesauce
arglebargle-23456-fulferol-23456-applesauce
arglebargle-34567-fulferol-34567-applesauce
arglebargle-45678-fulferol-45678-applesauce

这将完成以下工作:

awk '{ print "arglebargle-" $0 "-fulferol-" $0 "-applesauce" }' numFile

这应该完成这项工作:

awk '{ print "arglebargle-" $0 "-fulferol-" $0 "-applesauce" }' numFile

使用
sed

echo "12345
> 23456
> 34567
> 45678" | sed -e 's/\(.*\)/arglebargle-\1-fulferol-\1-applesauce/g'

arglebargle-12345-fulferol-12345-applesauce
arglebargle-23456-fulferol-23456-applesauce
arglebargle-34567-fulferol-34567-applesauce
arglebargle-45678-fulferol-45678-applesauce
如果您想在文件中就地替换(例如,您的文件是
a.txt
),您可以这样做

sed -i 's/\(.*\)/arglebargle-\1-fulferol-\1-applesauce/g' a.txt
使用
sed

echo "12345
> 23456
> 34567
> 45678" | sed -e 's/\(.*\)/arglebargle-\1-fulferol-\1-applesauce/g'

arglebargle-12345-fulferol-12345-applesauce
arglebargle-23456-fulferol-23456-applesauce
arglebargle-34567-fulferol-34567-applesauce
arglebargle-45678-fulferol-45678-applesauce
如果您想在文件中就地替换(例如,您的文件是
a.txt
),您可以这样做

sed -i 's/\(.*\)/arglebargle-\1-fulferol-\1-applesauce/g' a.txt