Linux shell上的一些命令问题

发布网友 发布时间:2022-04-22 19:53

我来回答

2个回答

热心网友 时间:2023-08-04 00:02

注解了一下:

cat $1 | while  read line   #打印输入的第一个命令行参数文件,输出到管道读取每一行
do  #对每一行处理
    echo $line | grep -q "pubInit"  #如果这一行能够匹配pubInit,grep -q表示匹配也不输出东西
    if [ $? -eq 0 ]; then #如果上个进程退出返回0,应该是匹配了pubInit
        old=`echo $line | sed -n '/pubInit/,/(/p'` #如果这行匹配pubInit和括号就赋值给old
        minold=`echo $line | sed -n '/pubInit/,/(/p' | sed 'y/ABCDEFGHIJKLMNOPQR 
STUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` # 如果这行符合pubInit和括号就将大写字母转为小写赋值给 minold
        mintab=`echo ${minold#*t}` #删除 minold中的*t
        echo $old | sed s/$old/init_${mintab}/ >> $1.tmp #old替换为init_连上${mintab} 并且输出给临时文件
        continue #继续下一行
    else #不匹配
        echo "$line" >> $1.tmp #直接输出到文件
    fi
done
    mv -f $1.tmp $1 #将临时文件改名

热心网友 时间:2023-08-04 00:02

${minold#*t} 这是shell的变量替换
这么写虽然可以,不过有点麻烦 这种替换单用sed就可以了
sed -i.old "s/pubInit\([a-zA-Z]*\)/init_\l\1/g" file追问`echo ${minold#*t}`这个什么意思??

有没有关于shell的资料有的话给我发一份呗
78+34358发了就给分

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com