有没有办法在awk代码块内修改shell变量?
这是一个非常简单的例子,实际脚本会加载文件并使用函数进行一些更改。我需要将每个变量在更改之前保存到特定变量中,这样我就可以在MySQL中记录变化前后的值。
更改后的值来自于参数($1、$2等)。
我已经知道如何从文件中获取更改前的值。
所有操作都很顺利,除了awk变量设置的shell_variable。在awk代码块外部很容易设置,但在内部是否可能呢?
--------- [shell_awk.sh]---------------------
#!/bin/bash
shell_variable_1=<value A>
shell_variable_2=<value B>
shell_variable_3=<value C>
awk 'function A(X)
{ return X+1 }
{ a=A('$shell_variable_1')
b=A('$shell_variable_2')
c=A('$shell_variable_3')
shell_variable_1=a
shell_variable_2=b
shell_variable_3=c
}' FILE.TXT
--------- [shell_awk.sh]---------------------
这是一个非常简单的例子,实际脚本会加载文件并使用函数进行一些更改。我需要将每个变量在更改之前保存到特定变量中,这样我就可以在MySQL中记录变化前后的值。
更改后的值来自于参数($1、$2等)。
我已经知道如何从文件中获取更改前的值。
所有操作都很顺利,除了awk变量设置的shell_variable。在awk代码块外部很容易设置,但在内部是否可能呢?
END
语句中放置print
的整个目的是在完成对任何输入文件的行处理之后才运行它们。当你用输入文件的重定向替换<<<""
时,你确实将其删除了吗? - undefinedawk
,我建议你最好在本地的bash中实现处理。请参考http://mywiki.wooledge.org/BashFAQ/100,了解一些可能首先考虑使用`awk`的操作的起步方法。 - undefined