AWK参数过长,怎么处理

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
zenglei286
帖子: 12
注册时间: 2007-10-23 11:17

AWK参数过长,怎么处理

#1

帖子 zenglei286 » 2011-09-20 10:12

#!bin/bash

IFS_old=$IFS
IFS=$'\n'
arr1=$(cat 1.txt)
t="$arr1"
awk -v t="$arr1" 'BEGIN{ split(t,ts);i=0;}{ print ts " " $0; i=i+1;}END{}' pid1.txt >a.txt

1.txt中有数万行的数据,,直接这么运行就显示参数过长的错误 :em20 ,请问有什么方法吗,能扩大参数的缓存块吗,或者是其他的方法,
情不知所起,一往而深
头像
Methuselar
帖子: 122
注册时间: 2009-06-04 12:06
联系:

Re: AWK参数过长,怎么处理

#2

帖子 Methuselar » 2011-09-20 10:22

好妖的用法...

用了awk就别折腾shell的IFS. 文件大就别折腾shell

两个文件而已,全部交给awk处理
Mea Culpa!
头像
zenglei286
帖子: 12
注册时间: 2007-10-23 11:17

Re: AWK参数过长,怎么处理

#3

帖子 zenglei286 » 2011-09-20 10:32

Methuselar 写了:好妖的用法...

用了awk就别折腾shell的IFS. 文件大就别折腾shell

两个文件而已,全部交给awk处理
能说下怎么处理吗,
情不知所起,一往而深
头像
zenglei286
帖子: 12
注册时间: 2007-10-23 11:17

Re: AWK参数过长,怎么处理

#4

帖子 zenglei286 » 2011-09-20 11:20

Methuselar 写了:好妖的用法...

用了awk就别折腾shell的IFS. 文件大就别折腾shell

两个文件而已,全部交给awk处理

谢谢提示,我已经根据你的意思做出来了,

#!bin/bash

IFS_old=$IFS
IFS=$'\n'
awk 'BEGIN{}{if(NR==FNR){ts=$0;i=i+1;} if(NR>FNR) { print ts[t] " " $0; t=t+1; }}END{}' 1.txt pid1.txt >a.txt
情不知所起,一往而深
回复