由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - 小白问:awk里面引用变量为啥有的加'$'有的不加?
相关主题
哪位大牛来普及一下 linux 下面的各种环境变量以及设置shell script和variable index
问一个ssh的问题请教一个基础C++问题 (转载)
请问shell里面的变量问题awk问题求救
bash 中如何将命令的返回值存到变量中?求助gdb cann't display variable value
Xming 问题Re: 有什么比较好的断点续传的 ftp/sftp 软件? (转载)
请教一个linux下面matlab的问题偶也文个vi的问题
神一般的awk一个有关shell script export variable的问题
setting up bash对了,关于debugger
相关话题的讨论汇总
话题: awk话题: variable话题: nf话题: end话题: bash
进入Linux版参与讨论
1 (共1页)
d******i
发帖数: 7160
1
比如下面这段统计词频的bash:
awk '
{for(i=1;i<=NF;i++) D[$i]++}
END {for(i in D) print i,D[i]}
' words.txt
前面的D[$i]必须加$,后面的必须没有$
为啥会有这不同呢?
j********2
发帖数: 4438
2
不带dollar sign的时候表明你在对variable进行操作,带的时候会把variable里面的
value拿出来操作。
类似java里面的pass-by-reference和pass-by-value的区别
d******i
发帖数: 7160
3
说反了吧?
我的例子里:
{for(i=1;i<=NF;i++) D[$i]++}
END {for(i in D) print i,D[i]}
第一行带'$'的'i'就是个整数,又不是指针,
谈何‘把variable里面的value拿出来操作’?

【在 j********2 的大作中提到】
: 不带dollar sign的时候表明你在对variable进行操作,带的时候会把variable里面的
: value拿出来操作。
: 类似java里面的pass-by-reference和pass-by-value的区别

A*****a
发帖数: 52743
4
$i是for()需要的,去掉$无法得到D

面的

【在 d******i 的大作中提到】
: 说反了吧?
: 我的例子里:
: {for(i=1;i<=NF;i++) D[$i]++}
: END {for(i in D) print i,D[i]}
: 第一行带'$'的'i'就是个整数,又不是指针,
: 谈何‘把variable里面的value拿出来操作’?

d******i
发帖数: 7160
5
俺贴的bash是lc上的demo,
本人也运行过了。
不会有错的。

【在 A*****a 的大作中提到】
: $i是for()需要的,去掉$无法得到D
:
: 面的

k****e
发帖数: 2758
6
it's awk, nothing to do with bash

【在 d******i 的大作中提到】
: 比如下面这段统计词频的bash:
: awk '
: {for(i=1;i<=NF;i++) D[$i]++}
: END {for(i in D) print i,D[i]}
: ' words.txt
: 前面的D[$i]必须加$,后面的必须没有$
: 为啥会有这不同呢?

d******i
发帖数: 7160
7
谢谢。
op已改。

【在 k****e 的大作中提到】
: it's awk, nothing to do with bash
A*****a
发帖数: 52743
8
你不是说前面必须$,后面必须无$么? 既然都能得到结果,为什么"必须"?

【在 d******i 的大作中提到】
: 俺贴的bash是lc上的demo,
: 本人也运行过了。
: 不会有错的。

k****e
发帖数: 2758
9
normal awk variable does not use $. $ is used for positional variable.
example: when i is 2, $i is the 2nd word.

【在 d******i 的大作中提到】
: 比如下面这段统计词频的bash:
: awk '
: {for(i=1;i<=NF;i++) D[$i]++}
: END {for(i in D) print i,D[i]}
: ' words.txt
: 前面的D[$i]必须加$,后面的必须没有$
: 为啥会有这不同呢?

d******i
发帖数: 7160
10
the syntax is really weird.
so in sentence "{for(i=1;i<=NF;i++) D[$i]++;}"
the reason to use '$' is to convert an (integer index) variable to the i-th
element it refers to?

【在 k****e 的大作中提到】
: normal awk variable does not use $. $ is used for positional variable.
: example: when i is 2, $i is the 2nd word.

A*****a
发帖数: 52743
11
这里的i实际是频率次数,D是一个array,index是词,i是词对应的频率

th

【在 d******i 的大作中提到】
: the syntax is really weird.
: so in sentence "{for(i=1;i<=NF;i++) D[$i]++;}"
: the reason to use '$' is to convert an (integer index) variable to the i-th
: element it refers to?

y*j
发帖数: 3139
12
D 实际上是一个map, $i 是一行的第i个单词
$i约等于python的
line.split()[i]

【在 A*****a 的大作中提到】
: 这里的i实际是频率次数,D是一个array,index是词,i是词对应的频率
:
: th

1 (共1页)
进入Linux版参与讨论
相关主题
对了,关于debuggerXming 问题
比较emacs flymake和vim codecheck请教一个linux下面matlab的问题
vim text alignment神一般的awk
包子求助一道题 Perl (转载)setting up bash
哪位大牛来普及一下 linux 下面的各种环境变量以及设置shell script和variable index
问一个ssh的问题请教一个基础C++问题 (转载)
请问shell里面的变量问题awk问题求救
bash 中如何将命令的返回值存到变量中?求助gdb cann't display variable value
相关话题的讨论汇总
话题: awk话题: variable话题: nf话题: end话题: bash