在所有行上加一

在所有行上加一

您能否帮助我使用一个 unix 脚本来在文件中获取如下结果:


apple1
apple2
apple3

等等,直到 100

来自仅包含一个单词“apple”的文件apple.txt。

先感谢您!

答案1

当我们都在提出各种想法时,下面是我长期以来最喜欢的、但未得到充分利用的命令seq

echo "" ; apple=`cat /tmp/apple.txt` ; seq 1 100 | sed -e "s/^/$apple/"

开头echo提供了您的初始空白行,我担心一些海报可能会忘记它(尽管他们的解决方案非常好,并且都可以轻松修复,提示提示)。

答案2

Google 拥有丰富的 Bash 脚本资源。

无论如何,这里是:

for i in {1..100}; do echo "`cat apple.txt`$i"; done

答案3

这是一个解决方案大王

awk '{ while (count++ < 100) print $0 count }' apple.txt > output.txt

奖金seq-高尔夫解决方案(29 个字符):

seq -f"$(pg apple.txt)%g" 100

seq默认从 1 开始,因此无需指定该FIRST参数。示例输出未填充数字,因此可以简化格式。从标记的外观来看,示例输出中的空行可能是格式错误。

编辑(25个字符):seq -f$(<apple.txt)%g 100

答案4

如果bash可用,则以下不使用外部命令:

( read -r t; for i in {1..100}; do echo "$t$i" >> outfile; done ) < apple.txt

相关内容