开发者社区> 问答> 正文

shell脚本如何读取文件中的内容并赋值?:报错

1.log中的内容为

Lily 00123
Lucy 98745

如何逐行读取并将名字赋值给$NAME,后面的数字赋值给$ID?

展开
收起
kun坤 2020-06-07 21:57:58 844 0
1 条回答
写回答
取消 提交回答
  • 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 到底主要用在啥地方?

    ######awk字符串处理神器,支持正则 哈希表。######

    /etc/passwd文件的格式是不是很像表格——多行,每行分多域,以:隔开,如果想从这个文件里提出所有用户名及其用户目录,对awk来讲是非常简单的事情。

    awk最初就是用来从格式化的文本里提取数据用的,不过它的功能远不止如此,还可以统计,还可以完成sed等工具的大部分功能。。

    2020-06-07 21:58:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Shell 脚本速查手册 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载