shell面试题来啦
- 修改file.txt文件第9行的aaa为bbb
sed '9s/666/bbb/g' h.sh
![]()
- 查看file.txt第2行第三列的内容。
head -2 file.txt |cut -d " " -f 3|tail -1
sed -n "2p" file.txt |cut -d " " -f 3
awk 'NR==2 {print $3}' file.txt
- 输入n,求小于n的所有质数
!/bin/bash
I=2 #0和1不算质数,从2开始
while [ $i -le $1 ];do
flag=1
for (( j=2;jj<=$i;j++ ));do #jj<=$I 原意为j<=开根号I,减少循环
if [ $(($i%$j)) -eq 0 ];then
flag=0
break
fi
done
if [ $flag -eq 1 ];then
echo $i
fi
i=$(( i+1 ))
done
- 编写个shell脚本将/etc目录下大于10K的文件转移到当前目录下
!/bin/bash
fileinfo=($(du ../tmp/*)) #获取所有文件名及大小
echo ${fileinfo[@]}
basedir=($(pwd)) #当前目录
echo $basedir
length=${#fileinfo[@]}
for ((i=0;i<$length;i=$(( i+2 ))))
do
echo ${fileinfo[$i]}
if [ ${fileinfo[$i]} -lt 10 ];then
mv ${fileinfo[$(( i+1 ))]} $basedir
fi
done
- 给定一个文件a.txt,用输出文件第10行
方法有很多
grep -n "" a.txt | grep -w '10' | cut -d -f2
head -10 a.txt|tail -1
sed -n '10p' a.txt
awk '{NR==10 {print $0}}' a.txt
- 给定一个文件a.txt,用输出文件第10行的第2列
grep -n "" a.txt | grep -w '10' | cut -d -f2|cut -d " " -f2
head -10 a.txt|tail -1|cut -d " " -f2
sed -n '10p' a.txt|cut -d " " -f2
awk '{NR==10 {print $2}}' a.txt
- 如何显示文本file.txt中第二列大于56789的行?
awk '$1>111 {print $0}' file.txt
- 显示file.txt的1,3,5行?
awk 'NR1||NR3||NR==5 {print $0}' file.txt
sed -n "1p;3p;5p" file.txt
- **把当前目录(包含子目录)下所有后缀为“.sh”的文件后缀变更为“.txt” **
!/bin/bash
filename=($(find ../move/*.sh))
echo ${#filename[@]}
length=${#filename[@]}
for ((i=0;i<$length;i=$(( i+1 ))));do
mv ${filename[i]} ${filename[i]%txt}
done
- 打印出file.txt文件第1到第三行
head -3 file.txt
sed "3q" file.txt
sed -n '1,3p' file.txt
- 查询file.txt开头,结尾,空格
1) 查询file里面空行的所在行号
grep -n ^$ file
2) 查询file以abc结尾的行
grep abc$ file
3) 查询file以abc开头的行
grep ^abc file
posted @
2020-12-04 00:29
干吧得
阅读(
528)
评论()
收藏
举报