在文件的特定列中使用awk打印两个变量的值

时间:2017-04-24 11:35:16

标签: bash shell awk

我不想只使用awk打印变量值。实际上我想在文件的特定列中打印变量的值。我已经尝试过链接"如何在awk脚本中使用shell变量"

以下是我的要求。

我有两个变量,我想在特定列中打印这些变量的值。我在下面尝试过打印变量的值但它没有给出所需的结果。

awk '$2 = $2 FS "$test" infile

来自链接"如何在awk脚本中使用shell变量"我能理解如何 根据我的要求打印变量值是打印两个值 特定列中的变量。例如,我有两个变量,我需要 在第3列和第4列中打印两个变量的值。

以下是示例。

infile中

2017/03/31-465       17:00:22 01:20:18 Completed                        63249705
2017/03/30-490       17:00:19 00:15:17 Completed                        12205725
2017/03/29-502       17:00:19 00:15:12 Completed                        12108819
2017/03/28-496       17:00:20 00:14:58 Completed                        12060389
2017/03/27-487       17:00:24 00:15:29 Completed                        11990615
2017/03/26-76        17:00:22 32:05:10 Completed                        62974897
2017/03/24-465       17:00:22 01:24:26 Completed                        62974897
2017/03/23-494       17:00:16 00:14:30 Completed                        11970151
2017/03/22-489       17:00:19 00:14:49 Completed                        11923575
2017/03/21-472       17:00:19 00:14:52 Completed                        11878081
2017/03/20-463       17:00:20 02:21:25 Aborted                                 0
2017/03/12-78        17:00:19 32:05:16 Completed                        62466091

我有2个变量,我想打印两个变量的值 专栏说3和4。

变量: - test和test2

我尝试使用以下代码。但它打印$test而不是变量值 测试。当我浏览链接"如何在awk脚本中使用shell变量"和 能够打印变量的值但不能在特定列中打印 的文件。

awk '$3 = $3 FS "$test"' infile

1 个答案:

答案 0 :(得分:0)

如果你想在awk中使用shell变量的值,你应该这样做:

$test

如果您直接在awk中使用test,awk认为它引用了一列,则列索引位于(awk变量)0中,默认为$0,这将是f = &s;(整行)。