杂项1

本文介绍了Shell编程中的几个实用技巧,包括如何正确地设置环境变量以确保它们能在子shell中生效,如何在awk中输出包含特殊字符的文本,以及如何用awk和read命令筛选出行长度超过80个字符的行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.setenv PATH和set path = (....)
  解答:set path仅仅作用于当前的shell,setenv也对子shell起作用。
  csh中使用setenv来设置环境变量。ksh中使用export来设置环境变量。
  csh:
   setenv  ENV_NAME   ENV_VALUE
  ksh
   export  ENV_NAME=ENV_VALUE
   也可以分步:
   ENV_NAME=ENV_VALUE
   export ENV_NAME

2.awk中输出单引号
echo "a b c" |awk '{print $1 单引号 $2  单引号 $3}'
我要给b加单引号,输出成下面格式:
a 'b' c
解答:
echo "a b c"|awk '{printf("%s %c%s%c %s\n",$1,39,$2,39,$3)}'
3.awk或read找出文件行字符数大于80的行
方法一:使用awk的NR
   awk '
{
line_len=length
if (line_len >80)
print NR":"line_len
}' <$1
注:若length函数不加参数,则表示处理当前行
方法二:使用read,循环处理
while read line
do
 count=`echo $line|wc -C`
 countnum=`expr $count - 1`
 if [ $countnum -gt 80 ]; then
   echo "$linecount: ($countnum) $line"
 fi
done < $1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值