在 awk 命令中生成 csv 文件
Generate csv file in awk command
我正在执行下面的 awk 命令来拆分文件并生成 .CSV 格式的输出。我尝试了很多方法来在脚本中传递正确的语法以生成 csv 文件,但没有成功。有人可以让我知道在哪里提到正确的语法吗?
awk -v lines="30000" -v pre="awk_part_" '
NR==1 { header=[=10=]; next}
(NR-1) % lines ==1 { fname=pre c++; print header > fname}
{print > fname}' patient.tsv
上述命令的工作原理:
- awk -v lines=”30000″ -v pre=”awk_part_” – 首先,我声明了两个 awk 变量来定义每个拆分文件中有多少条记录以及文件名的前缀
- NR==1 { header=$0; next} – 当 awk 读取第一行时,它将该行存储在 header 变量中并停止进一步处理
- (NR-1) % lines ==1 { fname=pre c++; print header > fname} – 当当前行是主干的第一条记录时,我们需要通过递增计数器 (c) 来更新文件名 (fname)。此外,由于这将是一个新文件,我们将 header 变量的值添加到文件中作为第一行
- {print > fname}' patient.tsv – 然后,我将每个记录行重定向到当前的 fname 文件
awk -v lines=”30000″ -v pre=”awk_part_” – First, I’ve declared two awk
variables to define how many records are in each split file and the
prefix of the filenames
-v var=val
(...) Set the variable var to the value val before execution of the
program begins. Such variable values are available inside the BEGIN
rule(...).
您显然试图在 BEGIN
之外使用它,请尝试使用以下代码
awk 'BEGIN{lines=30000;pre="awk_part_"}
NR==1 { header=[=11=]; next}
(NR-1) % lines ==1 { fname=pre c++; print header > fname}
{print > fname}' patient.tsv
并检查它是否产生了您想要的结果。
@Daweo,行与 headers 一起进入文件。以 FILE 类型格式创建文件扩展名。参考截图awk_part_o in FILE format
我正在执行下面的 awk 命令来拆分文件并生成 .CSV 格式的输出。我尝试了很多方法来在脚本中传递正确的语法以生成 csv 文件,但没有成功。有人可以让我知道在哪里提到正确的语法吗?
awk -v lines="30000" -v pre="awk_part_" '
NR==1 { header=[=10=]; next}
(NR-1) % lines ==1 { fname=pre c++; print header > fname}
{print > fname}' patient.tsv
上述命令的工作原理:
- awk -v lines=”30000″ -v pre=”awk_part_” – 首先,我声明了两个 awk 变量来定义每个拆分文件中有多少条记录以及文件名的前缀
- NR==1 { header=$0; next} – 当 awk 读取第一行时,它将该行存储在 header 变量中并停止进一步处理
- (NR-1) % lines ==1 { fname=pre c++; print header > fname} – 当当前行是主干的第一条记录时,我们需要通过递增计数器 (c) 来更新文件名 (fname)。此外,由于这将是一个新文件,我们将 header 变量的值添加到文件中作为第一行
- {print > fname}' patient.tsv – 然后,我将每个记录行重定向到当前的 fname 文件
awk -v lines=”30000″ -v pre=”awk_part_” – First, I’ve declared two awk variables to define how many records are in each split file and the prefix of the filenames
-v var=val
(...) Set the variable var to the value val before execution of the program begins. Such variable values are available inside the
BEGIN
rule(...).
您显然试图在 BEGIN
之外使用它,请尝试使用以下代码
awk 'BEGIN{lines=30000;pre="awk_part_"}
NR==1 { header=[=11=]; next}
(NR-1) % lines ==1 { fname=pre c++; print header > fname}
{print > fname}' patient.tsv
并检查它是否产生了您想要的结果。
@Daweo,行与 headers 一起进入文件。以 FILE 类型格式创建文件扩展名。参考截图awk_part_o in FILE format