1.log中的内容为
Lily 00123
Lucy 98745
如何逐行读取并将名字赋值给$NAME,后面的数字赋值给$ID?
cat 1.log|while read line; do NAME=`awk 'BEGIN {split("'"$line"'",arr);print arr[1]}'` ID=`awk 'BEGIN {split("'"$line"'",arr);print arr[2]}'` done######多谢皮总~######
cat 1.log|while read line; do NAME=`awk 'BEGIN {split("'"$line"'",arr);print arr[1]}'` ID=`awk 'BEGIN {split("'"$line"'",arr);print arr[2]}'` done
不需要 awk:
while read NAME ID; do echo $NAME $ID; done < 1.log
cat 1.log|while read line; do NAME=`awk 'BEGIN {split("'"$line"'",arr);print arr[1]}'` ID=`awk 'BEGIN {split("'"$line"'",arr);print arr[2]}'` done
顺便问问 awk 到底主要用在啥地方?
/etc/passwd文件的格式是不是很像表格——多行,每行分多域,以:隔开,如果想从这个文件里提出所有用户名及其用户目录,对awk来讲是非常简单的事情。
awk最初就是用来从格式化的文本里提取数据用的,不过它的功能远不止如此,还可以统计,还可以完成sed等工具的大部分功能。。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。