加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 无法分隔分号分隔线awk

发布时间:2020-12-15 18:58:06 所属栏目:安全 来源:网络整理
导读:我正在尝试执行以下操作: 逐行读取文件. 每行具有以下结构:field1; field2; field3 使用awk分隔这些字段中的每一个,然后进一步处理这些字段 我的代码片段是: while read ldon=`echo ${l} | awk --field-separator=";" '{print NF}'`field1=`echo ${l} | a
我正在尝试执行以下操作:

>逐行读取文件.
>每行具有以下结构:field1; field2; field3
>使用awk分隔这些字段中的每一个,然后进一步处理这些字段

我的代码片段是:

while read l
do
n=`echo ${l} | awk --field-separator=";" '{print NF}'`
field1=`echo ${l} | awk --field-separator=";" '{print $1}'`
field2=`echo ${l} | awk --field-separator=";" '{print $2}'`
field3=`echo ${l} | awk --field-separator=";" '{print $3}'`
echo ${n} ${field1} ${field2} ${field3} 
done < temp

其中temp仅包含以下行:

xx;yy;zz

我在命令行上得到的答案是:

1 xx;yy;zz

我不确定我理解这个输出.任何解释都会很好,因为它确实适用于其他文件.我正在使用Mac,而此代码在bash脚本中使用awk.

你的awk不知道是什么–field-separator =“;”当你这样做时意味着:
awk --field-separator=";" '{print $1}'

你的awk仍然使用空格的默认FS,所以$1包含你的整个输入行,而$2和$3是空的.使用-F’;’设置FS.

你是如此,在如何编写你想要的脚本方面做得不好.如果您告诉我们更多关于“处理每个领域”的内容,我们可以帮助您.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读