leetcode中shell题解

常见的shell

awk用法

# grades.txt 如下:Alice 85
Bob 92
Charlie 78
Alice 90
Bob 88# awk程序
{name = $1score = $2sum[name] += scorecount[name]++
}END {for (name in sum) {avg = sum[name] / count[name]printf "学生 %s 的平均分是 %.2f\n", name, avg}
}# 运行awk程序
awk -f calculate_avg.awk grades.txt

统计词频

写bash统计word.txt中每一个单词出现的频率

  • 连续的字符进行压缩 -s = sequeeze
echo "Helloooooo, world!!!" | tr -s 'o'
# 变成
Hello world# 将连续的空格转换成单个换行符
tr -s ' ' '\n'# 结果
the
day
is
sunny
the
  • 单词排序

sort

  • 统计词频

uniq -c

-c:在每列旁边显示该行重复出现的次数

wc -w统计词频但是不显示原来的单词

  • 排序单词出现的次数

sort -r

-r逆序

  • 打印

awk '{print $2, $1}':这里加上逗号

cat words.txt | tr -s ' ' '\n' | sort | uniq -c | sort -r | awk '{print $2, $1}'

有效电话号码

^:表示开头位置
$:表示结尾位置
^\([0-9]{3}\) [0-9]{3}-[0-9]{4} # xxx-xxx-xxxx
^[0-9]{3}-[0-9]{3}-[0-9]{4}# 最终表达式
^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$
grep -P 正则表达式 file.txt
awk '/pattern/' file.txt
gawk
功能扩展:gawk提供了一些增强功能,如更强大的正则表达式支持、更丰富的内置函数、更强大的模式处理能力以及更灵活的输出控制。正则表达式:gawk支持更丰富的正则表达式语法,包括零宽断言、非贪婪匹配、捕获组等。相比之下,传统的awk实现可能对一些高级正则表达式功能的支持较弱。内置函数:gawk提供了一些额外的内置函数,如gensub()、strftime()等,用于字符串处理、日期时间操作等。数组排序:gawk提供了asort()和asorti()函数,可以对数组进行排序。多维数组:gawk支持多维数组,可以创建和操作更复杂的数据结构。编程功能:gawk支持一些编程特性,如BEGIN和END模式、自定义函数等,使得编写复杂的awk脚本更加方便。

转置文件

  • wc -w 计算多个单词。类似uniq -c

  • xargs:多行变成一行

# 注意这里使用了三个引号包裹$i变量
awk '{print $'''$i'''}' | args# 统计有多少列
c=${cat file.txt | head -1 | wc -w}
# 每一列进行转置
for i in $(seq 1 $c)
doawk '{print $'''$i'''} | args'
done

因此,print $'''$i'''的含义是打印第i列的值。

请注意,这里使用了三个单引号'''来包围$i,这是因为在某些情况下,如果直接使用$i,Shell会将其解析为Shell变量,而不是传递给awk命令。使用三个单引号可以防止Shell解析变量。

另外不要忘了使用cat读取文件

第十行

  • tail -n +10 :从第10行还是显示
  • sed -n '10p' file.txt
  • awk {NR == 10} file.txt:行计数器等于10的行

sed -n 's/Hello/Hi/p' file.txt:将文件中的Hello替换成Hi

常见的多线程笔试题

常用的JUC工具包

  • semaphore。生产者消费者模型中最常用的一个。交替问题
  • futureTask: 搜索、线程池,任务思维
  • CountDonwLatch
  • lock
  • synchornized
  • volatile

常用的并发工具包

  • concurrentHashMap:搜索问题
  • BlockingList

单例模式

  • 私有构造器
  • 静态获取方法
  • 锁本类。
package LeetReview;/*** @author: Zekun Fu* @date: 2023/8/6 16:19* @Description:** 1. 静态内部类: 直接使用静态内部类holder* 2. 懒汉式: 先判断是否有无,如果没有在new一个* 3.饿汉式: 直接new 一个* 4. 双锁检测*/
public class Siglonten {private static volatile Siglonten instance;            // 为了防止使用未初始化的对象,这里加上volatile关键字,保证可见性private Siglonten() {System.out.println("创建单例!");}private static Siglonten getSiglote() {if (instance == null) {                             // 第一次防止不必要的加锁synchronized (Siglonten.class) {               // 确保只有一个实例被创建if (instance == null) {instance = new Siglonten();}}}return instance;}public static void main(String[] args) {for (int i = 0; i < 10; i++) {new Thread(()->{Siglonten siglonten = Siglonten.getSiglote();}).start();}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/590107.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中科亿海微UART协议

引言 在现代数字系统设计中&#xff0c;通信是一个至关重要的方面。而UART&#xff08;通用异步接收器/发送器&#xff09;协议作为一种常见的串行通信协议&#xff0c;被广泛应用于各种数字系统中。FPGA&#xff08;现场可编程门阵列&#xff09;作为一种灵活可编程的硬件平台…

个体诊所软件方案,农村医疗服务站社区门诊电子处方管理系统软件教程

个体诊所软件方案&#xff0c;农村医疗服务站社区门诊电子处方管理系统软件教程 一、软件程序问答 1、处方单软件有病历汇总吗 如下图&#xff0c;软件以 佳易王电子处方软件V17.2版本为例说明 点击 病历汇总统计 按钮&#xff0c; 可以按明细查询或病历汇总查询&#xf…

基于JavaWeb实验室预约管理系统(源码+数据库+文档)

一、项目简介 本项目是一套基于JavaWeb实验室预约管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;e…

rime中州韵 help lua Translator

lua 是 Rime中州韵/小狼毫输入法强大的武器&#xff0c;掌握如何在Rime中州韵/小狼毫中使用lua&#xff0c;你将体验到什么叫 随心所欲。 先看效果 在 rime中州韵 输入效果一览 中的 &#x1f447; help效果 一节中&#xff0c; 我们看到了在Rime中州韵/小狼毫输入法中输入 h…

cpu优化方法

如何看谁拉高了cpu&#xff1f; cpu高的时候有没有抓到进程threadtop&#xff0c;从threadtop找到top 3线程和正常场景对比一下就知道是否有异常对明显有异常的线程&#xff0c;看下是否抓到simplerperf trace或systrace&#xff0c;从trace中找到高频调用栈是否异常如果没有…

力扣133. 克隆图

深度优先遍历 思路&#xff1a; 使用一个哈希表存储已经被克隆过的节点&#xff0c;key 为原节点&#xff0c;value 为克隆的节点&#xff1b;从原节点开始遍历&#xff0c;如果已经被克隆过&#xff0c;则回到其克隆节点&#xff1b;否则&#xff0c;克隆该节点&#xff0c;并…

常见位运算模板方法总结(包含五道例题)

哈喽大家好&#xff0c;今天博主给大家带来算法基础常见位运算的模板&#xff0c;可以说大家遇到的百分之九十与位运算有关的题都可以用得上。话不多上我们上干货&#xff1a; 一.基础位运算符 << 左移运算符 >> 右移运算符 ~ 取反 & 与运算 | …

八股文打卡day18——操作系统(1)

面试题&#xff1a;进程和线程的区别&#xff1f; 我的回答&#xff1a; 1.概念上。进程是系统进行资源分配和调度的基本单位。线程是系统进行运算调度的最小单位。线程是进程的子任务&#xff0c;一个进程至少包含一个线程&#xff0c;一个进程可以运行多个线程&#xff0c;…

【Linux--多线程同步与互斥】

目录 一、线程互斥1.1相关概念介绍1.2互斥量mutex1.3互斥量接口1.3.1初始化互斥量1.3.2销毁互斥量1.3.3互斥量加锁1.3.4互斥量解锁1.3.5使用互斥量解决上面分苹果问题 1.4互斥原理 二、可重入与线程安全2.1相关概念2.2常见线程不安全的情况2.3常见不可重入的情况2.4 可重入与线…

PiflowX组件-JDBCWrite

JDBCWrite组件 组件说明 使用JDBC驱动向任意类型的关系型数据库写入数据。 计算引擎 flink 有界性 Sink: Batch Sink: Streaming Append & Upsert Mode 组件分组 Jdbc 端口 Inport&#xff1a;默认端口 outport&#xff1a;默认端口 组件属性 名称展示名称默…

获奖、买房、出课、维权、购车,我的2023年度总结。

时光如水&#xff0c;岁月如梭。一个典型的小学语文作文的开头。 但是随着年龄的增长&#xff0c;越来越觉得时间过得真的很快啊。转眼间2023年就这么过去了。回看这一年&#xff0c;发现真的做了很多事。 按照惯例&#xff0c;做个总结吧。 获奖 很多人都知道&#xff0c;我去…

百度高级Java面试真题

今年IT寒冬&#xff0c;大厂都裁员或者准备裁员&#xff0c;作为开猿节流主要目标之一&#xff0c;我们更应该时刻保持竞争力。为了抱团取暖&#xff0c;林老师开通了《知识星球》&#xff0c;并邀请我阿里、快手、腾讯等的朋友加入&#xff0c;分享八股文、项目经验、管理经验…

Spring04

一、AOP的概念 AOP 为 (Aspect Oriented Programming) 的缩写&#xff0c;意为&#xff1a;面向切面编程&#xff0c;底层是使用动态代理的技术实现对目标方法的增强和控制访问等功能。 其中AOP中有几个重要的概念: 1、通知:增强的逻辑&#xff0c;或者后期要加入的代码。 2、目…

【js】js解析Token:

一、效果&#xff1a; 二、实现&#xff1a; export function getTokenObject(token) {//通过split()方法将token转为字符串数组,数组中的第二个字符进行解析return token ? JSON.parse(decodeURIComponent(escape(window.atob(token.split(".")[1].replace(/-/g &…

docker Mysql-udf-http

1.Mysql-udf-http镜像已上传到dockerhub中 docker pull heidaodageshiwo/mysql-udf-http:v1 2.启动镜像(默认密码root1234) docker run -tid -p 3306:3306 --namemysql-udf-http --privilegedtrue heidaodageshiwo/mysql-udf-http:v1 3.命令 [rootlocalhost ~]# docker im…

odoo17 | 开发环境设置

前言 开始odoo17开发之前&#xff0c;请先掌握python的基本语法和工具包的使用&#xff0c;以及postgres数据库的安装&#xff0c;和简单的sql使用。以及一些前端的html、css、javascript等前端知识&#xff0c;以及xml、json等数据传输的使用。 本教程同时适用于odoo15-17 …

C++判定终端ip和目标ip是否在同一局域网内

程序如下&#xff1a;用于判断给定的终端 IP、子网掩码和目标 IP 是否在同一局域网内。请注意&#xff0c;这个程序假设 IP 地址是用整数表示的。 #include <iostream> #include <sstream> #include <vector> #include <bitset>// Function to check …

《微信小程序开发从入门到实战》学习六十八

6.6 网络API 6.6.1 网络API 使用wx.request接口可以发起网络请求。该接口接受一个Object参&#xff0c;参数支持属性如下所示&#xff1a; url(必填)&#xff1a;开发者服务器地址 data&#xff1a;请求的参数&#xff0c;类型为string/object/ArrayBuffer header&#xf…

go语言语法基础

文章目录 前言一、输入和输出常用的字符串格式化符号 二、注释三、Go常用基本语言数据类型数字类型布尔类型字符类型变量与常量数组和切片数组切片 map类型创建map增删改查特别提醒 指针 四、运算符五、条件判断语句if系列switch六、循环语句for循环标准写法死循环while循环do …

阿里云Alibaba Cloud Linux 3.2104 LTS 64位镜像系统介绍

阿里云Alibaba Cloud Linux 3.2104 LTS 64位镜像是可以选择的&#xff0c;它阿里云打造的Linux服务器操作系统发行版&#xff0c;针对云服务器ECS做了大量深度优化&#xff0c;完全兼容RHEL/CentOS生态和操作方式&#xff0c;如果是阿里云服务器ECS建议选择Alibaba Cloud Linux…