- 博客(14)
- 收藏
- 关注
原创 Bash 递归处理文件及文件夹
经常遇到的需求:删除某个目录下包含某某字符串的所有子目录。解:网上搜出来的结果普遍都用ls, 实际上用find最省事。递归列出当前目录下所有子目录:find . -type d递归列出当前目录下所有文件:find . -type f然后再配上grep和xargs完事。栗子:删除当前目录下所有包含temp字符串的子目录。解:先用grep抓出来确认一下。grep的时候可以使用一些正则,这里就不举例了。find . -type d |grep 'temp'确认没问题之
2021-08-16 12:18:15
612
原创 Bash一键替换/清除文本文档中的跨行注释
日常工作中,如果遇到一个恶心的文本文档里面有各种骚批注,或者代码里总写一些骚注释,在统计代码量的时候,某些人当然不想把这些注释也算到统计里头啦。那么如何一键替换或者删掉这些玩意儿呢。例子:一个恶心的文档可能和下头的东西类似。骚年把他看不懂的东西写了注释,并且还用<<<>>>这玩意括起来,还分了好几行,这样明明简简单单的几行代码,硬生生多出来2行。long i; float x2, y; const float threehalfs = 1.5F ;x2 =
2021-07-21 23:12:36
482
原创 Python HackerRank 刷题 Maximum Subarray Sum
题目地址:https://www.hackerrank.com/challenges/maximum-subarray-sum/problem?isFullScreen=false简述:在给定正整数组中,找到任意子数组求和后对M取余的最大值。栗子当a = [3,2,7,4] 且 m=7 时,返回6。因为子数组[2,7,4]求和后对7取余可取到最大值6。难度:Hard解题先正常搞。直接调用itertools.combinations一行搞定。结果肯定是无法通过全部测试的。原因主要是因.
2021-07-21 22:33:42
400
1
原创 Python HackerRank 刷题 Insertion Sort Advanced Analysis
题目地址:https://www.hackerrank.com/challenges/insertion-sort/problem?isFullScreen=false翻译:计算插入排序一个长度为n的list一共需要多少次shift。栗子如下:难度:Advanced科普插入排序没有什么比一个动图(转自)更好了。解题上来先不管三七二十一,直接撸一个插入排序。def insertionSort(arr): ct = 0 for i in range(0,l.
2021-07-05 21:42:18
306
原创 Python HackerRank 刷题 Matrix Layer Rotation
题目地址:https://www.hackerrank.com/challenges/matrix-rotation-algo/problem?isFullScreen=false翻译:将一个mXn的矩阵按步长r顺时针螺旋旋转。例子如下:难度:Hard解题本来想找找有没有公式一步到位,然并没有找到。那只能一圈一圈拿出来了。本来想拿的时候能不能两个for嵌套完事,无奈能力有限,想了好久也没搞定。最后只能分上下左右4个循环整了。import copydef matrixRotat.
2021-06-30 13:27:58
282
原创 Python HackerRank 刷题 Pairs
题目地址:https://www.hackerrank.com/challenges/pairs/problem?isFullScreen=false翻译:返回list中任意两元素差值绝对值=k的最大组合数。例子如下:难度:Medium解题正常做法:先输出全部长度为2的组合,再遍历两两求差比较。from itertools import combinationsdef pairs(k, a): # Write your code here temp = [i .
2021-06-27 23:27:26
382
原创 Bash Shell 读ini配置文件
需求读取ini配置文件中对应Key的Value值。配置文件格式[section_1]key_1=value_1Key_2=value_2
2021-06-21 14:00:36
708
原创 如何通过Python和Bash从Google Drive上批量下载文件夹下的全部文件
最近有需求要从Google Drive上下载大量开源数据集,但这些数据文件以小文件的形式零散的分布在多个文件夹下。由于数据量特别大,如果从最顶层文件夹进行下载,Google会默认地首先将这些数据打成多个小zip包,然后再逐一将这些zip包下载下来。但由于梯子的不稳定性,按照正常的下载路子,若中途梯子不小心断了,那未下载完全的zip包由于不支持断点续传,都需要重新下载。因此想到可以租用围墙外边的云节点,先将全部数据舒服稳定地下载到节点上,再按照自己的喜好进行自由地打包(可以压缩后打成一整个bz2,也可以打成.
2021-02-28 16:22:58
2965
1
原创 Shell 删除结构化文本数据中匹配字符串前后行的一些简单操作
最近遇到了些奇奇怪怪的有关结构化文本文档(例如xml)的处理需求,感觉用Shell操作最方便。在此稍微整理一下。1. 需求:从输入文本文件中找到匹配字符串,并删除其所在行以及之后的N行。解:用sed# 直接替换原文件(有风险)sed -i '/匹配字符串/I, +N行 d' 输入文件名# 不替换原文件(安全适合老年人)sed '/匹配字符串/I, +N行 d' 输入文件名 > 输出文件名2. 需求:从输入文本文件中找到匹配字符串,并删除其所在行以及之前的N行。解:用tac掉
2021-02-27 19:02:30
1261
原创 Python HackerRank 刷题 Minimum Distances
题目地址:https://www.hackerrank.com/challenges/minimum-distances/problem?isFullScreen=false翻译:返回list中相同元素index差值最小值;没有相同则返回-1。例子如下:难度:Easy解题正常做法:双重遍历求解。时间复杂度:O(n^2)def minimumDistances(a): l = [(i,j) for i in range(len(a)-1) for j in range(1,l
2020-12-11 20:54:55
265
原创 稍微深入分析Ubuntu环境下安装NVIDIA驱动导致黑屏的原因
本文承接之前写的有关如何用正确姿势安装NVIDIA驱动的博文 (https://blog.youkuaiyun.com/Edward_ed_liu/article/details/109552761)。首先之所以要更新Linux内核,是因为不更新内核就无法使用笔记本自带的无线网卡。其次,目前NVIDIA官方不建议把Linux内核更新到最新版(5.9),而且这条消息只在英文的官网才有,中文的则是广告。TWICE如果强行更新到5.9版本,之后的Cuda安装表面上会显示成功,但在实际使用Cuda的过程中.
2020-11-10 16:43:53
9831
3
原创 ROG 冰刃4 在 Ubuntu 环境下安装NVIDIA驱动
ROG 冰刃4 在 Ubuntu 环境下安装NVIDIA驱动机器配置更新系统安装好以后直接插网线,或者找个不需要安装驱动的无线网卡联网,然后在配好软件源之后开始更新系统。参照https://www.cnblogs.com/harrypotterjackson/p/11846222.htmlsudo apt update && sudo apt upgradesudo apt-get install git fakeroot build-essential ncurse
2020-11-07 23:14:54
3009
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人