sh/bash/dash/ksh/zsh等Shell脚本
-
zenglei286
- 帖子: 12
- 注册时间: 2007-10-23 11:17
#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中有数万行的数据,,直接这么运行就显示参数过长的错误
,请问有什么方法吗,能扩大参数的缓存块吗,或者是其他的方法,
情不知所起,一往而深
-
Methuselar
- 帖子: 122
- 注册时间: 2009-06-04 12:06
-
联系:
#2
帖子
由 Methuselar » 2011-09-20 10:22
好妖的用法...
用了awk就别折腾shell的IFS. 文件大就别折腾shell
两个文件而已,全部交给awk处理
Mea Culpa!
-
zenglei286
- 帖子: 12
- 注册时间: 2007-10-23 11:17
#3
帖子
由 zenglei286 » 2011-09-20 10:32
Methuselar 写了:好妖的用法...
用了awk就别折腾shell的IFS. 文件大就别折腾shell
两个文件而已,全部交给awk处理
能说下怎么处理吗,
情不知所起,一往而深
-
zenglei286
- 帖子: 12
- 注册时间: 2007-10-23 11:17
#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
情不知所起,一往而深