linux - 添加新的数字列

标签 linux awk

我正在编写以下代码以在 for 循环中使用 awk 从现有文件中提取数据。

for c in {1..300}
do
awk '{if($28==1) print $12,$26,$28}' file1.txt > file2.txt
done

没关系,我有 file2.txt 现在,我想添加一个新列,其中包含从上面的 for 循环生成的 c。 我这样做了,但它不起作用。

awk '{if($28==1) print $12,$26,$28, paste c}' file1.txt > file2.txt

这仅在我将 c 替换为实数(例如 1,2,... 最后,我想将 file1.txt 附加到 file2.txt,即每次循环运行时都会将新数据添加到 file2.txt。 我有这个,但它似乎不是最好的:

awk <file2.txt>> file_final.txt

你能给我一些建议吗?谢谢你! 芳

使用下面 William 推荐的方法,我能够生成我想要的输出。非常感谢!

最佳答案

rm file2.txt
for c in $(seq 1 300); do
  awk '$28==1{print $12,$26,$28,c}' c=$c file1.txt >> file2.txt
done

关于linux - 添加新的数字列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37824516/

相关文章:

c - 嵌入式Linux。以原子方式执行代码块

linux - 使用 awk 或 sed 对以模式开头的行进行排序

c - 输出重定向产生空文件

linux - 如何使用nix的ioctl?

awk - 在 AWK 中使用双引号作为字段分隔符

regex - AWK 计数/排序/唯一的audit.log CentOS 7

linux - 将具有模式的行转置为列

linux - 从固定宽度的列中提取值

css - 样式表上的 403 错误 - Raspberry Pi Webserver

c - shmget() 给出 EINVAL 错误