linux相关(find/grep/awk/sed/rpm)

如何查找特定的文件:

  find :在指定目录下查找文件

  find -name "filename" :从当前目录查找文件

  find / -name "filename" : 从根目录下查找文件

  find ~ -name "target*" :从用户目录查找以target开头的文件  

  find ~ -iname "target*":从用户目录查找以target开头的文件(忽略target的大小写)

man:查看帮助

  man find

根据文件内容检索文件:

  grep [options] pattern file  :查找文件里符合条件的字符串,并打印匹配的行

   grep "test" target*:查找以target开头的文件中的test内容

管道操作符 |:

  可将指令链接起来,前一个指令的输出作为后一个指令的输入,管道命令只能执行前一个命令的正确输出,不能执行错误

   右边命令必须能够接受标准输入流,否则传递过程中数据就会被抛弃

  例子:

  grep 'partial\[true\]' basc.info.log  ==> 检索log文件中包含partial[true]字符的行

  grep -o 'engine\[[0-9a-z]\]' ==》检索出engine[11111111111],符合正则表达式的内容 

  grep -v 'grep' ==》排除包含grep的命令   如 ps -ef | grep java | grep -v 'grep'   

对文件内容做统计:

  awk [options] 'cmd' file:一次读取一行文本,按输入分隔符进行切片,切成多个组成部分,将切片直接保存在内建变量中,$1,$2...$0表示行的全部

   支持对单个切片的判断,支持循环判断,默认分隔符为空格

   例子:

    awk '{print $1,$4}' netstat.txt

    

    awk '$1=="tcp" && $2==1{print $0}' netstat.txt

    

    NR:代表表头

    awk '($1=="tcp" && $4==1) || NR==1 {print $0}' netstat.txt

    

    修改默认分隔符:

    awk -F "," 'print{ $2}'

    

  做统计:

  

批量替换文本内容:

  sed [options] 'sed command' filename: 流编辑器,适用于对文本行内容进行处理

  例子:

  sed 's/^Str/String/' replace.java ==》替换Str开头的文本,  s表示字符串操作(该操作并不会修改原文件的内容,只是将修改后的内容输入的屏幕)

  

  如果需要修改源文件:sed -i 's/^Str/String/' replace.java

  

RPM默认安装路径:

/etc一些设置文件放置的目录如/etc/crontab
/usr/bin一些可执行文件
/usr/lib一些程序使用的动态函数库
/usr/share/doc一些基本的软件使用手册与帮助文档
/usr/share/man一些man page文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
#!/bin/bash #bash -x ./build_package.sh -a aarch64 -w `pud` -i 123abc -v 1,4.0 -r 3 -b /root/packaging_releases/build_root_a3860623d/virtual_rootfs/usr/local/ -l /usr/local -t deb OS=Kylin VERSION= WORK_ROOT= PACKAGE_TYPE=deb BUILD_ID= RELEASE= DISTRO_ID=`cat /etc/*-release | grep ^ID= | awk -F'=' '{print $2}' | sed '/\"//g'` DISTRO _VERSION_ID=`cat /etc/*-release | grep ^VERSION_ID= | awk -F'=' '{print $2}' | sed "s/\"//g'` usage() { echo "Usage:" echo "build_package.sh " } build_rpm_package() { mkdir -p $BUILD ROOT pushd $BUILD ROOT RPMBUILD=$BUILD_ROOT/rpmbuild_$BUILD_ID rpmbuild --bb --target=$ARCH \ -D "_topdir $RPMBUILD" \ -D "_arch $ARCH" \ -D "current_version $VERSION" \ -D "current_release $RELEASE.$DISTRO_ID$DISTRO_VERSION_ID" \ -D "lib $BIN PATH" \ -D "lib_prefix $_LIB_PREFTX" \ $WORK_ROOT/rpm_package/package.spec cp `find ./ -name *.rpm` $WORK_ROOT; popd exit } build_deb_package() { mkdir -p $BUILD_ROOT pushd $BUILD_ROOT PACKAGE_NAME="sietium-umod-drv_"$VERSION"-"$RELEASE"."$DISTRO_ID$DISTRO_VERSION_ID"_"$ARCH DEBBUILD=$BUILD_ROOT/debbuild_$BUILD_ID mkdir -p $DEBBUILD/$_LIB_PREFIX sed-i "s/Version:/Version:$VERSION-$RELEASE/g" $WORK_ROOT/deb_package/DEBIAN/control sed -i "s/Architecture:/Architecture:$ARCH/g"$WORK_ROOT/deb_package/DEBIAN/control rsync -rat $WORK_ROOT/deb_package/DEBIAN $DEBBUILD rsync -rat $BIN_PATH $DEBBUILD/$_LIB_PREFIX pushd $DEBBUILD mv ./DEBIAN ./debian mv usr/local/sietium/lib64/pkgconfig . dpkg-shlibdeps usr/local/sietium/lib64/* mv ./pkgconfig usr/local/sietium/lib64/ DEPS=`cat debian/substvars | awk -F'shlibs:Depends=' '{print $2}'` sed -i "s/Depends:/Depends:$DEPS/g" debian/control mv ./debian ./DEBIAN popd dpkg-deb--build $DEBBUILD $WORK_ROOT/$PACKAGE_NAME.deb Popd exit } while getopts a:b:d:o:v:w:t:i:h:r:l:c:h: option do case $option in a) ARCH=$OPTARG;; b) BIN_PATH=$OPTARG;; f) CONF_PATH=$OPTARG;; o) OS=$OPTARG;; v) VERSION=$OPTARG;; w)WORK_ROOT=$OPTARG;; t) PACKAGE_TYPE=$OPTARG;; i) BUILD_ID=$OPTARG;; r) RELEASE=$OPTARG;; l) _LIB_PREFIX=$OPTARG;; c)_CONF_PREFIX=$OPTARG;; h) usage;; ?) usage;; esac done echo "build env:" echo " Arch:" $ARCH echo " OS:" $OS echo " Version:" $VERSION echo " RELEASE:" $RELEASE echo " Work dir:" SWORK_ROOT echo " Package type:" $PACKAGE_TYPE BUILD_ROOT=$WORK_ROOT/build _package_$BUILD_ID if [ $PACKAGE_TYPE =='rpm']; then build_rpm_package elif[$PACKAGE_TYPE =='deb']; then build_deb_package else build_rpm_package build_deb_package fi解释脚本意义
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巡山小妖008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值