忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 450 | 回复: 6

[文本处理] ======[已解决]这个脚本awk命令为什么报错呢?====== [复制链接]

论坛徽章:
7
操作系统版块每日发帖之星
日期:2015-06-16 22:20:00IT运维版块每日发帖之星
日期:2015-06-17 22:20:00IT运维版块每周发帖之星
日期:2016-01-07 23:04:26操作系统版块每日发帖之星
日期:2016-05-17 06:20:00操作系统版块每日发帖之星
日期:2016-05-21 06:20:00操作系统版块每日发帖之星
日期:2016-07-05 06:20:0015-16赛季CBA联赛之广东
日期:2017-07-13 16:08:03
发表于 2017-07-13 09:52 |显示全部楼层
本帖最后由 奋斗的毛毛虫 于 2017-07-13 10:35 编辑

#!/bin/bash
_BASE_PATH=/aa/bb/cc
echo "/abc/software/3dspace/3dspace0/webapps/3dspace/" > ${_BASE_PATH}/_3dspace_copy_target_directory.txt
_3dspace_copy_target_directory_list=${_BASE_PATH}/_3dspace_copy_target_directory.txt
for _3dspace_copy_target_directory in `cat ${_3dspace_copy_target_directory_list}`;do
copy_target_directory_result=0
            if [ ${copy_target_directory_result} -eq 0 ];then
                  _3dspace=`awk -F'/' '{print $5}' ${_3dspace_copy_target_directory}`
                  echo ${_3dspace}
            fi
done


[plm300@plm0d301 Release]$ sh -x aaa.sh
+ _BASE_PATH=/aa/bb/cc
+ echo /abc/software/3dspace/3dspace0/webapps/3dspace
+ _3dspace_copy_target_directory_list=/work1/install/Release/_3dspace_copy_target_directory.txt
++ cat /work1/install/Release/_3dspace_copy_target_directory.txt
+ for _3dspace_copy_target_directory in '`cat ${_3dspace_copy_target_directory_list}`'
+ copy_target_directory_result=0
+ '[' 0 -eq 0 ']'
++ awk -F/ '{print $5}' /abc/software/3dspace/3dspace0/webapps/3dspace
awk: warning: command line argument `/abc/software/3dspace/3dspace0/webapps/3dspace' is a directory: skipped
+ _3dspace=
+ echo

请问awk命令错在哪里呢?参数有问题?

论坛徽章:
120
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07巳蛇
日期:2014-05-09 16:43:18巨蟹座
日期:2014-10-23 17:48:38子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59
发表于 2017-07-13 10:05 |显示全部楼层
回复 1# 奋斗的毛毛虫

>> ...请问awk命令错在哪里呢?

awk '...' FILE


++ awk -F/ '{print $5}' /abc/software/3dspace/3dspace0/webapps/3dspace
awk: warning: command line argument `/abc/software/3dspace/3dspace0/webapps/3dspace' is a directory: skipped



论坛徽章:
7
操作系统版块每日发帖之星
日期:2015-06-16 22:20:00IT运维版块每日发帖之星
日期:2015-06-17 22:20:00IT运维版块每周发帖之星
日期:2016-01-07 23:04:26操作系统版块每日发帖之星
日期:2016-05-17 06:20:00操作系统版块每日发帖之星
日期:2016-05-21 06:20:00操作系统版块每日发帖之星
日期:2016-07-05 06:20:0015-16赛季CBA联赛之广东
日期:2017-07-13 16:08:03
发表于 2017-07-13 10:19 |显示全部楼层
回复 2# jason680

你好,我知道报错原因是:
根据POSIX标准,命名为awk命令行上的文件必须是文本文件;这是一个致命的错误,如果他们不。大多数版本AWK的命令行作为一个致命的错误处理上的一个目录。

那么,请问我如何解决这个问题呢?我是不是使用awk命令就对此问题的话,就没有办法了呢?

我把参数后面的“/”去掉了,还不好用,即:/pp1/tomee/3dspace/3dspace0/webapps/3dspace

awk -F'/' '{print $5}' /pp1/tomee/3dspace/3dspace0/webapps/3dspace
还是报错:awk: warning: command line argument `/pp1/tomee/3dspace/3dspace0/webapps/3dspace' is a directory: skipped



论坛徽章:
7
操作系统版块每日发帖之星
日期:2015-06-16 22:20:00IT运维版块每日发帖之星
日期:2015-06-17 22:20:00IT运维版块每周发帖之星
日期:2016-01-07 23:04:26操作系统版块每日发帖之星
日期:2016-05-17 06:20:00操作系统版块每日发帖之星
日期:2016-05-21 06:20:00操作系统版块每日发帖之星
日期:2016-07-05 06:20:0015-16赛季CBA联赛之广东
日期:2017-07-13 16:08:03
发表于 2017-07-13 10:34 |显示全部楼层
回复 2# jason680

问题解决了。

_3dspace=`awk -F'/' '{print $5}' ${_3dspace_copy_target_directory}`
修改为:
_3dspace=`echo ${_3dspace_copy_target_directory} | awk -F'/' '{print $5}'`

论坛徽章:
105
ChinaUnix元老
日期:2015-02-02 08:55:39CU十二周年纪念徽章
日期:2015-02-02 08:55:50午马
日期:2014-04-30 10:30:44双子座
日期:2013-08-20 08:22:52双鱼座
日期:2013-08-20 17:47:58丑牛
日期:2013-09-13 13:10:45水瓶座
日期:2013-09-13 21:15:33寅虎
日期:2013-09-25 11:23:51戌狗
日期:2013-09-26 13:21:25丑牛
日期:2013-09-26 14:23:42亥猪
日期:2013-09-27 17:42:00亥猪
日期:2013-09-27 17:45:14
发表于 2017-07-13 13:55 |显示全部楼层
回复 5# 奋斗的毛毛虫


awk -F'/' '{print $5}' <<< ${_3dspace_copy_target_directory}
放在后面也可以

论坛徽章:
120
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07巳蛇
日期:2014-05-09 16:43:18巨蟹座
日期:2014-10-23 17:48:38子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59
发表于 2017-07-13 15:53 |显示全部楼层
回复 1# 奋斗的毛毛虫


曲线救国?

_BASE_PATH=/aa/bb/cc
echo "/abc/software/3dspace/3dspace0/webapps/3dspace/" > ${_BASE_PATH}/_3dspace_copy_target_directory.txt
_3dspace_copy_target_directory_list=${_BASE_PATH}/_3dspace_copy_target_directory.txt
for _3dspace_copy_target_directory in `cat ${_3dspace_copy_target_directory_list}`;do

你echo放入文档中...
然后for 读文档

直接AWK就可读文档了...
awk '{print $5}' $_3dspace_copy_target_directory_list

论坛徽章:
7
操作系统版块每日发帖之星
日期:2015-06-16 22:20:00IT运维版块每日发帖之星
日期:2015-06-17 22:20:00IT运维版块每周发帖之星
日期:2016-01-07 23:04:26操作系统版块每日发帖之星
日期:2016-05-17 06:20:00操作系统版块每日发帖之星
日期:2016-05-21 06:20:00操作系统版块每日发帖之星
日期:2016-07-05 06:20:0015-16赛季CBA联赛之广东
日期:2017-07-13 16:08:03
发表于 2017-07-13 16:09 |显示全部楼层
回复 7# jason680

你这样好像不行呀,和我报错做法我觉得是一样的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP