您的当前位置:首页>全部百科>百科问答详情
注:文章内容来源于网络,真实性有待确认,请自行甄别。

awk里面为什么自动加了0bash

发表于:2024-10-24 00:00:00浏览:1次 分类: 电脑/网络-操作系统/系统故障
问题描述:-2.03# cat > 1 bash# cat 1 | awk '{if ($1= ) print $0}' 怎么变成了20.30了?
由于写成了$1= ,所以awk认为$0,在本例里也就是$1的值为 ,而 不是一个数字,awk再进一步解释为1.2和0.3和0.4,显示结果还不以空格分开,所以显示 应该是这样吧。[/quote:6bd795b3ef] 我们知道,首先,与c/c++,等相比,awk是一种弱类型语言。你不需要提前声明就可以使用变量,变量的类型转换也是隐含的,在某一语境(上下文)下它可能用作数字,在另一语境下它可能就用作字符串。 另外一个需要小心的地方就是awk的字符串连结操作,这个操作没有任何操作符,只要把需要连结的串并列写在一起就可以了。 [code:1:6bd795b3ef]$ echo|awk '{a=1.234;var=a" is a number";print var}' 1.234 is a number [/code:1:6bd795b3ef] 这里a首先被转换为字符串,然后与" is number"连接,赋给var。 [code:1:6bd795b3ef]$ echo|awk '{a="1.234kilo";var=a+1;print var}' 2.234 [/code:1:6bd795b3ef] 数值语境,a先转换成1.234,然后参与计算。 这样下面的结果就容易理解了: [code:1:6bd795b3ef]$ echo|awk '{var= ;print var}' [/code:1:6bd795b3ef] 由于没有引号,这里的语境首先是数字语境,awk先依次取得三个数字:"1.2", ".3", 和".4",但是三个数字之间没有任何操作符地并列在一起,awk就认为要进行字符串连接,三个数字被转换为字符串后连接了起来,即:"1.2" "0.3" "0.4" ==> 。 再举几个例子: [code:1:6bd795b3ef]$ echo |awk '{var=1 2 3 4;print var}' #equivlent to: "1" "2" "3" "4" 1234 $ echo |awk '{var=1 2 a 3 4;print var}' #equivlent to: "1" "2" "" "3" "4" 1234 $ echo |awk '{a="abc";var=1 2 a 3 4;print var}' #equivlent to: "1" "2" "abc" "3" "4" 12abc34 $ echo |awk '{a=2.5;var=1 2 a 3 4;print var}' #equivlent to: "1" "2" "2.5" "3" "4" 122.534 $ echo|awk '{var=1 2 3 4 < 2 0 0 4;print var}' #equivlent to: 1234 < 2004 , that is true 1 [/code:1:6bd795b3ef] 另外请注意下面print语句输出时两种不同写法的区别: [code:1:6bd795b3ef]$ echo "1 2"|awk '{print $1 $2;print $1,$2}' 12 1 2 [/code:1:6bd795b3ef] print $1 $2 ==> $1与$2连接后整体输出, print $1,$2 ==> $1与$2依次输出。 总之awk的数字和字符串类型转换相当灵活方便,字符串连接尤其容易迷惑人(confusing),但是我们心里必须清楚我们要做什么,别把自己搞糊涂了!

猜你喜欢

在Word文档里面打字时,为什么空格键变成点了,怎样改过来,在其?
在Word里面打字时,为什么空格键变成点了,怎样改过来,在其它里面打字时,就是好的.不知为什么
发表于:2024-10-24 00:00:00 浏览:139 分类: 电脑/网络-操作系统/系统故障
点击“请点此安装控件”没任何反应,注(安全控件都已安装);求指点?
点击“请点此安装控件”没任何反应,注(安全控件都已安装);求指点???
发表于:2024-10-24 00:00:00 浏览:119 分类: 电脑/网络-操作系统/系统故障
电脑的快捷键有哪些有些复杂的快捷键
有些复杂的键
发表于:2024-10-24 00:00:00 浏览:98 分类: 电脑/网络-操作系统/系统故障
平板电脑复制,就是电脑中的右键,怎样在平板上使用。
就是中的右键,怎样在平板上使用。
发表于:2024-10-24 00:00:00 浏览:96 分类: 电脑/网络-操作系统/系统故障
电脑上日期时间为什么不同步?每次开机发现电脑上时间不正确,点击调?
上日期时间为什么不同步? 每次开机发现电脑上时间不正确,点击调整时,发现日期也不正确,立即更正日期、时间。但下次开机又不正确了。
发表于:2024-10-24 00:00:00 浏览:61 分类: 电脑/网络-操作系统/系统故障
系统警告,该怎么办事件类型:警告事件来源:Disk事件种类:无事
事件类型:警告事件来源:Di事件种类:无事件ID:51日期:2006-9-4事件:12:24:15用户:N/A计算机:DU描述:传呼期间在设备\Device\Harddisk0\D上检测到一个错误。有关更多信息,请参阅在的帮助和支持中心。数据:0000:0 100b600..h...¶.0008:00000000 ....3..€0010:2d01000000000000-.......0018:...
发表于:2024-10-24 00:00:00 浏览:57 分类: 电脑/网络-操作系统/系统故障
使用U/C矩阵进行行子系统划分的步骤有哪些?
使用U/矩阵进行行子系统划分的步骤有哪些?
发表于:2024-10-24 00:00:00 浏览:57 分类: 电脑/网络-操作系统/系统故障
大唐终端出平板电脑了吗?什么型号知道么?
大唐终端出平板电脑了吗?什么型号知道么?
发表于:2024-10-24 00:00:00 浏览:54 分类: 电脑/网络-操作系统/系统故障
如何使用TCL魔法手指完美破解版
如何使用TL魔法手指完美破解版
发表于:2024-10-24 00:00:00 浏览:53 分类: 电脑/网络-操作系统/系统故障
完全格式化,快速格式化,高级格式化,低级格式化,都什么意思,有何?
请详解哈
发表于:2024-10-24 00:00:00 浏览:49 分类: 电脑/网络-操作系统/系统故障