shell问题,请教高手!!!

wenlong01 2003-08-08 12:36:16
STR="mydoc.txt"
echo $STR | awk '{print substr($STR,1,5)}'

此语句就是执行不了,为什么?出现的错误如下:
awk: Field $() is not correct.
The input line number is 1.
The source line number is 1.
...全文
85 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
london 2003-08-11
  • 打赏
  • 举报
回复
其实直接用awk就行了
weichaohan 2003-08-09
  • 打赏
  • 举报
回复
QQ:12909986
http://wstarcraft.jahee.com
wenlong01 2003-08-09
  • 打赏
  • 举报
回复
To weichaohan(阳光):
谢谢!!!
wenlong01 2003-08-09
  • 打赏
  • 举报
回复
To fierygnu(va_list):
好方法!!!CSDN上牛人就是多!谢谢,我用的系统是HP-UX。

To linaxing(牛牛):
也是好方法!tks!呵呵,牛人!!

To freedom_coffee(######) :
老兄的这个方法在我的系统中行不通。
syntax error The source line is 1.
The error context is
{print >>> substr(${ <<<
awk: The statement cannot be correctly parsed.
The source line is 1.
awk: Quitting
The source line is 1.

To windcandle(想不起):
cat: Cannot open mydoc.txt: No such file or directory
syntax error The source line is 1.
The error context is
{print >>> substr(${ <<<
awk: The statement cannot be correctly parsed.
The source line is 1.
awk: Quitting
The source line is 1.
fierygnu 2003-08-08
  • 打赏
  • 举报
回复
我这里没有问题。你是什么系统?
另外这样的需求可以用:
echo ${STR%%.*}
实现。
windcandle 2003-08-08
  • 打赏
  • 举报
回复
呵呵,试试这样
cat ${STR} | awk '{print substr(${?},1,5)}'

?是文件中字符串所在的列数。
freedom_coffee 2003-08-08
  • 打赏
  • 举报
回复
尝试一下这样:
STR="mydoc.txt"
echo ${STR} | awk '{print substr(${STR},1,5)}'
linaxing 2003-08-08
  • 打赏
  • 举报
回复
应该这样吧:
STR="mydoc.txt"
echo $STR | awk '{print substr($0,1,5)}'

另外 fierygnu(va_list) 所说echo ${STR%%.*}也是一个好的选择,但印象中有的
shell不支持这种方式.

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧