论坛风格切换切换到宽版
  • 770阅读
  • 6回复

[问题求助][RedHat] shell编程 cut命令 [复制链接]

上一主题 下一主题
离线double123.
 
发帖
2094
C币
-604838
威望
395
贡献值
1
银元
-5
铜钱
4662
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
line3="12334_2121_.434_fdsfads.f"|cut -f 1 -d '_'    美容
echo $line3
为什么line3输出的是空值,.但是.
echo $line3="12334_2121_434_fdsfad.sf"|cu.t -f 1 -d '_'.
line3输出的就是12.334健康

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线jiji134.
发帖
2135
C币
-236194
威望
372
贡献值
1
银元
-3
铜钱
4705
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-14
Re:[RedHat]
$ line3=`echo "12334_2121_434_fdsfadsf"|cut -f 1 -d '_'` #注意最外面的是成对的反引号(命令替换)。
$ echo $line3

把命令的结果再赋值给line3。

离线tommytino.
发帖
2080
C币
-198682
威望
371
贡献值
1
银元
0
铜钱
4552
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-14
Re:[RedHat]
谁知到管道它是怎么处理的啊?
这问题太深入了

发帖
2289
C币
-198556
威望
435
贡献值
1
银元
-3
铜钱
5124
人人网人气币
0
只看该作者 地板  发表于: 2010-04-14
Re:[RedHat]
不清楚的时候,别急,把你的命令岔开来慢慢看。

离线陈茵茵.
发帖
1977
C币
-235565
威望
344
贡献值
1
银元
-4
铜钱
4356
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-14
Re:[RedHat]
line3="12334_2121_434_fdsfadsf"|cut -f 1 -d '_'

echo $line3

为什么line3输出的是空值,但是
复制代码
这里line3是一个变量,没有取值只是做了赋值,所以是空的;




echo $line3="12334_2121_434_fdsfadsf"|cut -f 1 -d '_'
复制代码
这次呢,取出了上次定义的值并显示在屏幕上,然后进入到cut操作 去第一个_之前的内容12334

离线aaer.
发帖
2090
C币
-152446
威望
394
贡献值
1
银元
-6
铜钱
4772
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-14
你这样的理解感觉上不通,我是这样想的,不知道对不对。

管道是把command1的stdout作为command2的stdin
line3="12334_2121_434_fdsfadsf"|cut -f 1 -d '_'
复制代码
管道前的命令并没有产生stdout,所以它本身并没有执行,此处不同于直接赋值,只执行管道后面的命令了,所以整条语句下来的话什么也没有。
echo $line3也没有。


echo $line3="12334_2121_434_fdsfadsf"|cut -f 1 -d '_'
复制代码
管道前面产生了stdout,整条语句执行完是有输出的。
也就是说前面的命令执行了,所以echo $line3是有值的。

离线5842136.
发帖
2262
C币
-192932
威望
414
贡献值
1
银元
-2
铜钱
5064
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-14
Re:[RedHat]
管道符把前边命令的输出,作为后边命令的输入。


QUOTE:原帖由 hellosa 于 2008-12-9 10:06 发表
line3="12334_2121_434_fdsfadsf"|cut -f 1 -d '_'

line3="12334_2121_434_fdsfadsf"是给(管道符前命令的)环境变量line3赋值,此处没有命令,也没有输出,所以cut -f 1 -d '_' 的输出为空。

root@dev911:~# echo $line3="12334_2121_434_fdsfadsf"|cut -f 1 -d '_'

=12334

root@dev911:~# echo $line3="12334_2121_434_fdsfadsf"                

=12334_2121_434_fdsfadsf

root@dev911:~# echo $line3



root@dev911:~#
复制代码
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个