这很简单,出于某种原因让我望而却步。我认为我应该能够通过一个非常简单的脚本或单行程序从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作为单行代码。或者作为红宝石脚本。它应该是如此简单,并且出于某种原因它正在回避我的想法!
答案 0 :(得分:2)
使用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
答案 1 :(得分:1)
这样的东西?
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
答案 2 :(得分:1)
这应该完成这项工作:
awk '{ print "arglebargle-" $0 "-fulferol-" $0 "-applesauce" }' numFile