shell 面试题

  1. 统计每个单词出现的个数
cat $1|tr -s ' ' '\n'|sort|uniq -c|sort|awk '{print $2" "$1}'
  1. 输入7的倍数
for num in {0..500..7};
do
  echo $num
done

for((i=0;i<=500;i=i+7));
do
  echo $i
done
  1. 统计文件的行数
wc -l txt

num=0
while read line
do
  num=$((num+1))
done < txt
echo $num
  1. 打印空行的行号
grep -n '^$' txt |  cut -d ':' -f 1

num=1
while read line
do
  if [ -z $line ];
  then
    echo $num
  fi
  num=$[num+1]
done < txt

5.去掉空行

grep -v -E '^$' txt
  1. awk num++
awk -F ':' '{sum+=$1}END{print sum}'
  1. 查看进程的地址
ps -ef|grep 进程A
ll /proc/pid/cwd
  1. sed修改文本内容
sed -i 's/a/b/g' txt
  1. 查看目录下文本大于1g的
find ./ -type f -size +1G

大于50m,小于100m
find ./ -size +50M  -size -100M
  1. curl
curl www.baidu.com
curl -X POST -d "user=hy&pwd=123" url
  1. 写脚本实现,可以用shell、perl等。在目录/tmp下找到100个以abc开头的文件,然后把这些文件的第一行保存到文件new中
for filename in `find /tmp -type f -name "abc*"|head -n 100`
do
sed -n '1p' $filename >> new
done

find /tmp -type f -name "abc*" | head -n 100 | xargs head -q -n 1 >> new
  1. 文件b中有的,但是文件a中没有的所有行,保存为文件c, 并统计c的行数
grep -vxFf a b | tee c | wc -l 
  1. 获取变量长度
${#variable}

截取:最后5个字符
${variable: -5}
  1. 整数相加
c=$((a+b))
c=`expr $a+$b`
c=`echo "$a+$b"|bc`

15.数组

array=('a','b','c')
echo ${array[0]}
echo ${array[@]} #打印所有元素
echo ${!array[@]} #输出索引
unset array[0] #移除元素

https://www.nowcoder.com/activity/oj?tab=2

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问题1[金和网络]:请用shell脚本写出查找当前文件夹(/home)下所有的文本文件内容中包含有字符”shen”...
    bigdata张凯翔阅读 4,705评论 0 0
  • 1、 Shell脚本是什么,它是必需的吗?答:一个shell脚本是一个文本文件,包含一个或多个命令。作为系统的管理...
    心帝_w阅读 3,984评论 0 2
  • 面试两次,都被问到了,整理一下 数据准备 vim data 计算指定列的所有值得和 例如:求取第二列所有值得和 统...
    李小李的路阅读 2,662评论 0 3
  • 2021-01-06 计算向脚本传递的参数个数 在脚本中获取脚本的名称 检查上一条命令是否执行成功 获取文件最后一...
    肉包君阅读 4,533评论 0 7
  • 美团算法面经(搜索算法) 一面 逻辑题:8 5 3升的桶 8升水, 分成两个4升比较简单的逻辑题,也有通用题目 L...
    婉妃阅读 10,315评论 0 5