1.统计文件行数
#!/bin/bash
wc -l ./code.txt | awk '{print $1}'
awk '{print NR}' ./code.txt | tail -n 1
awk 'ENG{print NR}' ./code.txt
grep -c "" ./code.txt
grep -n "" ./code.txt | awk -F ":" "{print $1}"
sed -n '$=' ./code.txt
2.打印文件的最后5行
#!/bin/bash
tail -n 5 ./code.txt
tail -5 ./code.txt
head -5 ./code.txt
sed -n '5,10p' ./code.txt
3.输出0到500中7的倍数
num=0
while (( $num<=500 ))
do
if (( $num%7==0 ))
then
echo $num
fi
let "num++"
done
num=0
while (( $num<=500 ))
do
echo $num
let "num+=7"
done
for num in {0..500..7}; do
echo "${num}"
done
for num in {0..500};do
[[ "((num%7))" -eq 0 ]] && echo "${num}"
done
exit 0
4.输出第5行的内容
head -n 5 nowcoder.txt | tail -n 1
sed -n 5p ./code.txt
5.打印空行的行号
grep -n '^\s*$' ./nowcoder.txt | awk -F ":" '{print$1}'
awk '/^\s*$/{print NR}' nowcoder.txt
sed -n '/^\s*$/=' ./code.txt
6.去掉文件中空行
awk '{if($0 != ""){print $0}}' ./code.txt
cat ./code.txt | awk NF
grep -v '^$' ./code.txt
grep -e '\S' ./code.txt
cat ./code.txt | tr -s "\n"
set '/^\s*$/d' ./code.txt
7.打印字母数小于8的单词
tr ",." " " < ./nowcoder.txt | awk -F " " '{for(i=1;i<=NF;i++){if(length($i)<8){print $i}}}'
8.统计所有进程占用内存大小和
ps -aux | grep -v "RSS"
sum=0
for i in `awk '{print $6}' nowcoder.txt`
do
((sum+=$i))
done
echo $sum
sum=0
while read p
do
((sum+=$(echo $p|awk '{print $6}')));
done < nowcoder.txt
echo $sum
awk '{sum+=$6}END{print sum}' nowcoder.txt
awk 'BEGIN{sum=0}{sum+=$6}END{print sum}' nowcoder.txt
sum=0;
while read p
do
arr=($p)
((sum+=arr[5]))
done <nowcoder.txt
echo $sum
9.统计每个单词出现的个数
cat nowcoder.txt |tr -s ' ' '\n'|sort|uniq -c|sort|awk '{print $2,$1}'
awk '{for(i=1;i<=NF;i++) a[$i]+=1}END{for(x in a) print x,a[x]}' nowcoder.txt
10.第二列是否有重复
cat code.txt | awk '{print $2}' | sort | uniq -c | grep -v "1" | sort
awk '{a[$2]++}END{for(i in a) print a[i],i}' nowcoder.txt |awk '{if($1 > 1) print $0}'
11.转置文件内容(列变行)
awk '{
for(i=1;i<=NF;i++){
if(NR==1){
row[i] = $i;
}else{
row[i] = row[i]" "$i;
}
}
}END{
for(i=1;i<=NF;i++){
print row[i]
}
}
' ./nowcoder.txt
12.大sql文件第一行加"set autocommit='0'",每隔10000行加commit
#!/bin/bash
sed -i "1i set autocommit = '0';" $1
NUM=0
cat $1 | awk 'NR%2==0{print NR}' | while read line
do
sed -i ''$[$line+$NUM]'a commit;' $1
NUM=$[$NUM+1]
echo $NUM
done
echo 'commit;' >> $1
13.大文件拆成多个小文件,前后加set autocommit=0和commit
split -l 2 info.txt newinfo.txt
sed -i "1i set autocommit = '0';" b.txt*
sed -i '$a commit;' b.txt*
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现