bash - 如何以列的最后一个数字的增量连接文件的内容
问题描述
我有一个包含一些内容的文件,需要重复第 n 次并添加最后一列号的增量。
Input content of a file:
TCTA 7 ccta TCTA 1
TCTA 8 ccta TCTA 1
TCTA 9 ccta TCTA 1
TCTA 10 ccta TCTA 1
TCTA 11 ccta TCTA 1
TCTA 12 ccta TCTA 1
TCTA 13 ccta TCTA 1
TCTA 14 ccta TCTA 1
TCTA 15 ccta TCTA 1
TCTA 16 ccta TCTA 1
TCTA 17 ccta TCTA 1
Expected output:
TCTA 7 ccta TCTA 1
TCTA 8 ccta TCTA 1
TCTA 9 ccta TCTA 1
TCTA 10 ccta TCTA 1
TCTA 11 ccta TCTA 1
TCTA 12 ccta TCTA 1
TCTA 13 ccta TCTA 1
TCTA 14 ccta TCTA 1
TCTA 15 ccta TCTA 1
TCTA 16 ccta TCTA 1
TCTA 17 ccta TCTA 1
TCTA 7 ccta TCTA 2
TCTA 8 ccta TCTA 2
TCTA 9 ccta TCTA 2
TCTA 10 ccta TCTA 2
TCTA 11 ccta TCTA 2
TCTA 12 ccta TCTA 2
TCTA 13 ccta TCTA 2
TCTA 14 ccta TCTA 2
TCTA 15 ccta TCTA 2
TCTA 16 ccta TCTA 2
TCTA 17 ccta TCTA 2
TCTA 7 ccta TCTA 3
TCTA 8 ccta TCTA 3
TCTA 9 ccta TCTA 3
TCTA 10 ccta TCTA 3
TCTA 11 ccta TCTA 3
TCTA 12 ccta TCTA 3
TCTA 13 ccta TCTA 3
TCTA 14 ccta TCTA 3
TCTA 15 ccta TCTA 3
TCTA 16 ccta TCTA 3
TCTA 17 ccta TCTA 3
TCTA 7 ccta TCTA n
TCTA 8 ccta TCTA n
TCTA 9 ccta TCTA n
TCTA 10 ccta TCTA n
TCTA 11 ccta TCTA n
TCTA 12 ccta TCTA n
TCTA 13 ccta TCTA n
TCTA 14 ccta TCTA n
TCTA 15 ccta TCTA n
TCTA 16 ccta TCTA n
TCTA 17 ccta TCTA n
我尝试了以下操作,但无法使最后一列增加第 n 次。
for i in {1..5};do
cat file.txt >> out.txt
done
我需要将最后一列增加第 n 次。
解决方案
使用 gnu-awk 解决方案:
awk -v n=3 '
{
rec = rec $0 RS
}
1
END {
for (i=2; i<=n; ++i)
printf "%s", gensub(/[0-9]+(\n|$)/, i "\\1", "g", rec)
}' file
TCTA 7 ccta TCTA 1
TCTA 8 ccta TCTA 1
TCTA 9 ccta TCTA 1
TCTA 10 ccta TCTA 1
TCTA 11 ccta TCTA 1
TCTA 12 ccta TCTA 1
TCTA 13 ccta TCTA 1
TCTA 14 ccta TCTA 1
TCTA 15 ccta TCTA 1
TCTA 16 ccta TCTA 1
TCTA 17 ccta TCTA 1
TCTA 7 ccta TCTA 2
TCTA 8 ccta TCTA 2
TCTA 9 ccta TCTA 2
TCTA 10 ccta TCTA 2
TCTA 11 ccta TCTA 2
TCTA 12 ccta TCTA 2
TCTA 13 ccta TCTA 2
TCTA 14 ccta TCTA 2
TCTA 15 ccta TCTA 2
TCTA 16 ccta TCTA 2
TCTA 17 ccta TCTA 2
TCTA 7 ccta TCTA 3
TCTA 8 ccta TCTA 3
TCTA 9 ccta TCTA 3
TCTA 10 ccta TCTA 3
TCTA 11 ccta TCTA 3
TCTA 12 ccta TCTA 3
TCTA 13 ccta TCTA 3
TCTA 14 ccta TCTA 3
TCTA 15 ccta TCTA 3
TCTA 16 ccta TCTA 3
TCTA 17 ccta TCTA 3
推荐阅读
- python - 在 Pyomo 中为约束提供上限和下限的问题
- c - C 库的公共头文件是否应该#include 其他带有双引号或尖括号的头文件?
- node.js - 在 Node.js 中动态导入 webpack
- json - 使用动态属性名称反序列化 json
- c++ - Delphi / C++Builder 10.2.3 RESTRequest POST
- if-statement - OpenMP 任务 if 或 final
- angular - 未找到 npm flatmap-stream@0.1.1
- scala - 如何在 Scala 中将资源文件夹中的文件作为 InputStream 读取?
- php - 如何在 php 中访问 xml 文件的子元素,在这种情况下,有多个条目带有不同分辨率的 url
- java - 如何打印数组列表中的每个对象并正确计算它们的数量?