Ruby 在事物列表周围插入文本
这是一件很简单的事情,出于某种原因,我一直在逃避。我认为我应该能够通过一个非常简单的脚本或一行代码从bash提示符完成这项工作 我有一个文件,由一系列数字组成: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
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