我的脚本awk的条目中有几个文件(.csv)。我将这些文件分隔在其他文件(.csv)中,我在sql loader(oracle)的帮助下将这些文件的数据插入数据库。
我想在文件中放一个值以放入一个全局变量,我可以在my awk script
中的任何地方使用它。
您是否了解如何使用AWK script
创建全局变量。
提前谢谢
示例:file.csv
NUMBER1;TEXT1;DATE1
NUMBER2;TEXT2;DATE1
NUMBER3;TEXT3;DATE1
NUMBER4;TEXT4;DATE1
NUMBER5;TEXT5;
我想创建一个包含这些信息的新文件(result.csv
)
NUMBER1;DATE1
NUMBER2;DATE1
NUMBER3;DATE1
NUMBER4;DATE1
NUMBER5;DATE1
答案 0 :(得分:2)
It looks like this is what you are trying to do:
$ awk 'BEGIN{FS=OFS=";"} NR==1{date=$NF} {print $1,date}' file
NUMBER1;DATE1
NUMBER2;DATE1
NUMBER3;DATE1
NUMBER4;DATE1
NUMBER5;DATE1
Get the book "Effective Awk Programming", 4th Edition, by Arnold Robbins.
答案 1 :(得分:1)
查看BEGIN和END for awk:
awk 'BEGIN { globalvar = "x" } {} '
开始块执行一次,所以在那里设置你的变量。
见这里:http://code.linuxnix.com/2013/02/awk-scripting-10-begin-and-end-block-examples.html
答案 2 :(得分:1)
您可以使用-v
选项为awk脚本定义变量。例如,假设您有env变量$ DATE。
$ DATE=$(date)
$ awk -v date="$DATE" '{print date}' <<< "ignore"
Mon Sep 14 10:27:59 EDT 2015
由于您的示例file.csv已经包含了所有字段,因此我不确定要将哪个变量传递给脚本。但是,假设您需要file.csv中的第一个字段并生成带有日期变量的result.csv,您可以执行此操作
awk -F";" -v OFS=";" -v date="$DATE" '{print $1, date}' file.csv > result.csv