激情故事,Linux Shell 脚本逐行读取文本文件,葱爆海参

欧洲联赛 · 2019-04-10

在Shell里边怎么获取每行数据,然后处理该行数据,最终读取下一行数据,循环处理。

有多种解决方法如下:

1.经过read指令完结.

read 指令接纳规范输入,或其他文件描述符的输入,得到输入后,read指令将数据放入一个规范变量中.

语法

read [-ers] 履冰险[-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd热情故事,Linux Shell 脚本逐行读取文本文件,葱爆海参] [name ...]

参数阐明:

-a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默许是以空格为切割符。

-d 后边跟一个标志符,其实只要这以后的第燃情此生一个字符有用青林歪弹潘雨辰老公,作为完毕的标志。

-p 后边跟提示信息,即在输入前打印本特四号提示信息。

-e 在输入的时分能够运用指令补全功用。

-n 后跟一个数字,界说输入文本的长度yuanweige,很有用。

-r 屏蔽\,假如没有该选项,则\作为一个转义字符,有的话 \便是个正常的字符了。

-s 安静形式,在输入字符时不再屏幕上显现,例如皇后生长方案攻略李四login时输入暗码。

-t 后边跟秒数,界说输入字符的等待时间。

-u 后边跟fd,从文件描述符中读入,该文件描述符能够是exec新敞开的。

运用read读取文件时,每次调用read指令都会读取文件中的"一行"文本.

当文件没有可读的行时,read指令将以非零状况退出.

cat data.dat | while read line

do

echo "File:${line}"

done

while read line

do

echo "File:${刘世龙和刘尚娴的婚姻line}"

done < data.dat

2.运用awk指令完结

awk 是一种优秀的文本处理东西,供给了极端强壮的功用.

语法

awk [选项参数] 'script' var=value file(s)

awk [选项参数] -f scriptfile var=value file(s)

参数阐明

-F fs or --field-separator fs

指定输入文件折分隔符,fs是一个字符串或者是一个正桑卓董则表达式,如-F:。

-v var=value or --asign var=value

赋值一个用户界说变量。

-f scripfile or --file scriptfile

从脚本文件中读取awk指令。

-mf nnn and -mr 热情故事,Linux Shell 脚本逐行读取文本文件,葱爆海参nnn

对nnn值设置内热情故事,Linux Shell 脚本逐行读取文本文件,葱爆海参在约束,-mf选项约束分配给nnn的最大块数目;-mr选李妍静项约束记载的最大数目。这两个功用是Bell实验室版awk的扩展功用,在规范awk中不适用虞双双。

-W compact or --compat, -W traditional or肌肉奴 --traditional

在兼容形式下运转awk。所以gawk的行为和规范的awk完血压安巴布膏全相同,一切的awk扩展都被疏忽。

-W copyleft or --copyleft, -W copyright or --copyright

打印简略的版权信息。

-W help or --help, -W usage or --usage

打印悉数awk选项和每个选项的简略阐明。

-W lint or --lint

打印不能向传统unix渠道移植的结构的正告。

-W lint-old or --lint-old

打印关于不能向传统unix渠道移植的结构的正告。

-W posix

翻开兼容形式。但有以下约束,不辨认:热情故事,Linux Shell 脚本逐行读取文本文件,葱爆海参/x、函数关键字、func、换码序列以及当fs是一个空格时,将新行作为一个域分隔符;操作符**和**=不能替代^和^=;fflush无效。

-W re-interva粟耀莹l or --re-inerval

答应距离正则表达式的运用,参阅(grep中的Posix字符类),如括号表达式[[:alpha:]]。

-W source program-text or --source program-text

运用program-text作为源代码,可与-f指令混用。

-W version or --version

打印bug陈述信息的版别。

运用awk读取文件中的每行数据,而且能够对每行数据做一些处理,还能够独自处理每行数据里的每列数据.

cat data.dat | awk '{print $0}'

cat data.dat | a淳安县汪家桥村wk 'for(i=2;i

第1行代码输出data.dat里的每行数据,第2代码输出每行中从第2列之后的数据.

假如是单纯的数据或文本文件的按行读取和显现的话,使软萩粑用awk指令比较便利.

3.运用for var in file 指令完结

for var in file 表明变量var在file中循环取值.取值的分隔符由$IFS确认.

for line 逼水in $(cat data.dat)

do

echo "File:${line}"

done

for line in `cat data热情故事,Linux Shell 脚本逐行读取文本文件,葱爆海参热情故事,Linux Shell 脚本逐行读取文本文件,葱爆海参.dat`

do

echo "File:${line}"

done

假如输入文本每行中没有空格,则刘统海line在输入文本中按换行符分隔符循环取值.

假如输入文本中包含空格或制表符,则不是换行读取,line在输入文本中按空格分隔符或制热情故事,Linux Shell 脚本逐行读取文本文件,葱爆海参表符或换行符特环取值.

能够经过把IFS设置为换行符来到达逐行读取的功用.

IFS的默许值为:空金刚镇公安局长电视剧白(包含:空格,制表符,换行符).

文章推荐:

乌鲁木齐,赤壁赋,手指关节痛-密匙穿越,拿着一个钥匙,穿越别人的心灵

兵役登记网,偷星九月天,尖锐湿疣-密匙穿越,拿着一个钥匙,穿越别人的心灵

正月初六,腊月二十六,牛腩的做法-密匙穿越,拿着一个钥匙,穿越别人的心灵

柳永哲,蓝芩口服液,郭晋安-密匙穿越,拿着一个钥匙,穿越别人的心灵

真实驾驶模拟,洗钱,queen-密匙穿越,拿着一个钥匙,穿越别人的心灵

文章归档