【发布时间】:2017-07-21 04:55:41
【问题描述】:
我有一个这样的文件 hoge.txt:
case $1 in
[ $input = "q" ] && exit
if [ -s $filename ]
if [ ! -f $1 -o -f $2 ]
echo $list
rm -f ${BKDIR}
BKDIR=/${HOME}/backup
我想查找所有字母变量,排除每个参数,例如“$1”,然后输出到这样的新文件:
$input
$filename
$list
我现在能做的最好的就是
cat hoge.txt | awk '{for(i=1;i<=NF;i++){ if($i=="$/[a-zA-Z]/"){print $i} } }'
但它不返回任何结果。
【问题讨论】:
-
只有小写单词?
-
大写和小写。我想排除任何不纯字母的内容:$HOME 可以,但 ${HOME} 将被排除。
-
将 if 条件更改为
if($i~/^\$[a-zA-Z]+$/)... 但是像${BKDIR}这样的变量呢?那么HOME中的BKDIR=/${HOME}/backup呢? -
@shift-e: 正是我上面提到的 Sundeep 的问题
-
@shift-e:如果您在
bash上下文中使用,变量$HOME和${HOME}字面意思是相同的。不知道为什么要排除后者