关于如何复制行有几个问题,我想自动将每一行复制到文件第一字段中找到的特定次数。我有一个包含两个字段的大文件,字段一是数字,字段二是相关信息,就像这样。
12 AAA
18 BBB
25 CCC
33 DDD
我会复制每一行,以便它的表示次数与第一字段中的数字相同。所以,我想要 12 行“12 AAA”等等。
我知道我可以在 vim 中手动粘贴每一行 x 次(复制然后“12p”),但这对于大文件来说似乎很繁重。有谁知道可以自动执行此操作的脚本吗?
答案1
使用 GNU awk:
#!/usr/bin/gawk -f
{
for (c=strtonum($1) ; c ; c--)
print
}
答案2
与awk
JigglyNaga 的答案相同:
awk '{ c=0; while ($1>c++) print }' infile
答案3
另一种 awk 解决方案:
<infile awk ' i=$1 { while(i--) print }'