grep、 sed、 find 、xargs、 gawk 输入输出,好用不好学的东西

GnuWin32:在Windows命令行中无缝使用Linux核心工具 命令行工具是开发者和系统管理员进行文本处理、文件操作和自动化任务的核心手段。在跨平台开发中,Linux的GNU工具链(如grep、sed、awk)以其强大的功能和简洁的语法成为事实标准。其原理是通过一系列单一功能的程序,利用管道和重定向进行组合,实现复杂的数据处理。这种技术价值在于极大地提升了工作效率和脚本的可移植性。对于需要在Windows环境下工作的用户,虽然PowerShell功能强大,但直接使用熟悉的Unix风格命令能减少上下文切换,简化操作流程。GnuWin32项目正是为了解决这一痛点,它将上百个 阅读详情
正则表达式
\< \>分别表示单词的开始和结束
ex: \<[Tt]om\> 以T或者t开头,om结尾的单词

正则表达式的元字符集:
1) ^行首 /^love/ 以love开头的行;
2) $行尾 /love$/ 以love结尾的行;
3) . /l..e/ 匹配所有这样的行,字母l后面紧跟任意两个字符然后是e的行
4) * 重复0次或者任意多次前面字符
5) [x-y] 字符范围
6) [^x-y] 排除字符范围
7) \ 转义字符
8) \< \> 界定单词的开头和结尾
9) \( \) 标记后面用到的匹配字符 \(love\)able \1er=loveable lover

http://lluxury.blog.51cto.com/900108/196635
10) x\{m,n\} 重复字符x至少m此,至多n次

---------------------------------------------------------------------------
---------------------------------------------------------------------------
grep家族

RE--regular expression; g: global; p: print

除了上面10种元字符集,grep还支持下面的RE
\w 字母或者数字
\W 非单词字符(标点符号)
+ 重复一个或者多个前面的字符
| 或 love(a:b)表示lovea或者lobeb
?单个字符

grep返回状态值($?) 0表示成功,1表示失败,2表示没有找到文件

rgrep递归访问目录树   A

---------------------------------------------------------------------------
ls -l |grep ^d 显示目录

grep -n -v -# -A# -B#
-i 不区分大小写
-n 显示匹配行和行号
-v只显示不匹配行
-#显示匹配行上下#行
-A#匹配行后面打印#行
-B#匹配行前面打印#行
-c 只输出匹配行的行数
-h 查询多文件的时候不显示匹配的文件名字
-l 查询多文件只显示匹配的文件名
-s 不显示错误信息

grep与正则表达式同用
grep "^[^abc]" *.f 提取行首 不是abc的行  "^[    ]"
grep "[0-9] \{3\}[8]" *.f 提取类似 xxx8的行,x表示任意数字  ? \{3\}
grep "a\{2\}" *.f 显示a至少出现两次的行,注意grep是以行处理单位的
grep -n "^$" file 列出空行的行号               "^$"

-E参数,可以使用"与"和"或"模式
grep -E "abc | def" *.f 显示包含abc或者def的行  "abc | def"

ex:
ls -l | grep "^$" 显示目录  ?
ls -l | grep "^d" 显示文件 no d
ls -l | grep "^d..x..x..x" 显示特定权限的目录  ??
ps aux | grep "httpd" |grep -v "grep"

---------------------------------------------------------------------------
---------------------------------------------------------------------------
**使用find和xargs

1. find pathname -options [-print -exec -ok]

-optinos
1)-name:按照文件名查找
find ~ -name "*.txt" -print    *.txt
find ~ -name "[a-z][0-9].txt" -print     非大写?

2) -perm:按照权限查找文件
find ~ -perm 755 -print 查找权限为755的文件
find ~ -perm 007 -print 查找o位置上具有7权限的文件   ??
find ~ -perm 4000 -print 查找具有suid的文件

3)-prune
不在当前目录下查找  ?

4)-user和-nouser
find ~ -user zhao -print 查找文件属主是zhao的文件
find ~  -nouser -print 查找文件属主已经被删除的文件

5)-group和-nogroup
find ~ -group zhao -print 查找文件群组是zhao的文件

6)按照时间
find ~ -mtime -5 -print 文件更改时间在 5天内的文件 -5
find ~ -mtime +3 -print 文件更改时间在 3天前的文件 +3
find ~  -newer file1 -print 查找比文件file1新的文件  -newer file1

7)按照类型查找
find ~ -type d -print 查找所有目录   -type d

8)按照大小
find ~ -size +1000000C -print 查找文件大小大于1000000字节(1M)的文件

9)查找位于本文件系统里面的文件
find / -name "*.txt"  -mount -print

-exec,-ok:find命令对于匹配文件执行该参数所给出shell命令,相应命令形式为: 'command' {} \;
-ok 在执行命令前要确认
find ~ -type f -exec ls -l {} \;     ?
find / -name "*.log" -mtime +5 -ok rm {} \;  5天前, -ok 在执行命令前要确认
find . -name core -exec rm {} \;   shell命令 'command' {} \;

使用-x dev参数
防止find搜索其他分区

find . -size 0 -exec rm {} \;   -exec rm {} \;

删除尺寸为0的文件

2. xargs与-exec功能类似
find ~ -type f | xargs ls -l
find / -name "*.log" -type f -print| xargs grep -i DB0

find . -type f |xargs grep -i "Mary"  
在所有文件中检索字符串Mary  无论大小写

ls *~ |xargs rm -rf   管道执行
删除所有以~结尾的文件

---------------------------------------------------------------------------
---------------------------------------------------------------------------
SED:
=====
sed [options] sedcommand inputfile >outputfile
sed不接触初始输入文件,对其不做修改,若想保存改动,重要将输出重定向到一个文件即可


a\: 当前行后面加入一行或者文本
c\: 用信文本替换本行的文本
d: 删除一行
D: 删除模板块的第一行
i\: 在当前行上面插入文本
h: 拷贝模板块的内容到内存缓冲区
H: 追加模板块的内容到内存缓冲区
g: 获得内存缓冲区内容,并替换当前模板中的文本
G: 获得内存缓冲区内容,并追加到当前模版块文本的后面
n: 读取下一个输入行,用下一个命令处理新行而不是第一个命令
N: 追加下一个输入行到模版块后面,并在二者间插入一个新行,改变当前行的号码
p: 打印模板块的行
P: 打印模板块的地一行
q: 退出sed
r file: 从file中读行
!: 表示后面的命令对所有没有选中的行起作用
s/re/strint/: 用string替换正则表达式re
=: 打印当前行号
#command: 把注释扩展到下一个换行符号前
l 打印匹配行,包括显示控制符号

**替换标记
g: 行内全部替换
p: 打印行
w: 把行写入一个文件
x: 互换模板块和缓冲区中的文本
y: 把一个字符翻译成另外一个字符

**sed中元字符可以使用正则表达式中所有的
新加:
& 保存搜索字符 s/love/**&**/ 用**love**代替love

**sed定位文本的方式
x 行号
x-y 从x行到y行
/patern/ 查询包括patern的行
x,y! 不包括指定x-y行号的行

ex:
sed '/Tom/d' file
删除包含Tom的行;d: 删除一行


sed '/Tom/!d' file
删除所有不包含Tom的行;

sed -n /north/p' file
打印包含north的行;p: 打印模板块的行

sed ‘3d' file
删除第三行;

sed '3,$d' file
删除第三行到最后一行; 3,$d


sed -n 's/west/north/g' file
替换所有west为north;
s替换,g: 获得内存缓冲区内容,并替换当前模板中的文本  ?
sed -n 's/^west/north/p' file
一行的开头的west用north替换,并打印发生替换的行;

sed 's/[0-9][0-9]$/&.5/' file
所有以两个数字结尾的行,最后两个数字被他们自己替换并附加.5;& 保存搜索字符??

sed -n 's/\(Mar\)got/\1ianne/p' file
将Margot替换为Marianne,并打印发生替换的行;复杂
\( \) 标记后面用到的匹配字符 \(love\)able \1er=loveable lover

sed 's#abc#ABC#g' file
所有abc由ABC替换,(所有s后面紧跟的字符都被认为是新的分隔符);

sed '/west/,/east/p' file
打印包含west行和包含east行中间的所有行;?

sed '1,/east/s/$/**A**/' file
地一行和包含east行之间的所有行的行尾加上字符串**A**;

sed -e '1,3d' -e 's/aa/bb/' file
先删除1到3行,然后用bb替换aa;  -e?

sed '/Sam/r file1' file
将文件file1中的内容附加在包含Sam的行后面;r file: 从file中读行

sed '/Sam/w file1' file
将还有Sam行写入文件file1中;

sed '/^north /a\new line second line' file
所有以north加空格开头的行后面附加上两行文本,a\表示追加文本,\表示换行(tcsh中需要,bash中不需要);

sed '/^north/i\new line' file
在行首为north的行前面插入一个新行;i\: 在当前行上面插入文本

sed '/norht/{n; s/aa/bb/;}' file
首先匹配含有north的行,然后执行一组命令,n表示移到下一行,并用bb代替aa;

sed '1,3g/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' file
将1到3行中的所有小写字母用大写字母替换;
g: 获得内存缓冲区内容,并替换当前模板中的文本

sed '/Lewis/{s/Lewis/bbb;q;}' file
首先找到匹配Lewis的行,然后用bbb代替Lewis,接着q退出seq;?

sed -e '/north/h' -e '$G' file
首先找到包含norht的行,h拷贝到内存缓冲区,然后到文件随后一行($),G附加在最后一行后面;

sed -e '/we/{h;d;}' -e '/ct/{G:}' file
查找包含we的行,拷贝并且删除他,然后查找包含ct的行,将拷贝内容附加到他后面;  G: 获得内存缓冲区内容,并追加到当前模版块文本的后面

sed -e '/north/h' -e '$g' file
首先找到包含norht的行,h拷贝到内存缓冲区,然后到文件随后一行并覆盖他;
g: 获得内存缓冲区内容,并替换当前模板中的文本

sed -n 'l' file
打印所有包含不能打印字符的行。l  ??

sed -n '/.*ing/p' file
显示含有以ing结尾单词的行; /.*ing/p

sed -n '/music/=' file
打印含有music的行号;

sed '^$d' file
删除空行

sed 's/^/abcd/g' file  g?
在行首填加abcd

sed 's/$/abcd/g' file
在行尾填加abcd

sed 's/rm$/played &/g' file
&表示在替换的时候保留被替换的词(rm--played rm)=>s/rm$/played &/

sed 's/^M//g' file
去掉行尾的^M (^M的输入,先按ctrl+v然后按enter即可即可)

---------------------------------------------------------------------------
---------------------------------------------------------------------------
gawk程序:
awk [-F 域分隔符] 'commands' inputfile

awk执行时,其域标志符为$1,$2,$3.........$n,$0表示所有的域

awk -v var=value 赋值给一个用户定义的变量

awk 'pattern' file
awk '{action}' file
awk 'pattern {action}' file

ex:

awk '{print $0}' file
打印所有的域
awk执行时,其域标志符为$1,$2,$3.........$n, $0表示所有的域 

awk '/Mary/' file
打印包含file中包含Mary的行;
/Mary/ 查询包括Mary的行 ' '
awk ' {print $1}' file
打印文件的第一列(第一个域);ok

awk '/Mary/ {print $1,$2}' file
打印文件file包含Mary的行的第一和第二个域; '/ / { }'

df | awk 'S4>75000'
打印可用空间大于75000的文件系统
第4项 为大小   ' '

date | awk '{print  " month:", $2,  "\n year:" $6}'
格式化date的输出;
2列 6列 ,month  year: 原样打出  " "              \n ?print

awk 'BEGIN{OFMT="%.2f"; print 1.25463}'
指定数字输出格式,小数点后面保留两位有效数(1.25);
不懂  ??

awk '/[ab]cdef/' file
打印匹配acdef或者bcdef的行;
/[ ]     / 任意singo

awk '{print NR, $0}' file
awk '{print $0, NR}' file
NR当前记录数,每处理一个记录NR就加1
上面的命令相当于在每一行后面加上一个行号;?
NF则记录每一行的域的个数;

awk -F '[ :\t]' '{print $0}' file
指定域分隔符为空格、:或者tab

awk '/^[A-Z][a-z]+/' file
打印所有以一个大写字母开头,然后是一个或者多个小写字母的行;
^行首

awk '$1~/[Bb]ill/' file
第一个域匹配Bill或者bill的行;
~//表示匹配正则表达式

awk '$1!~/ly$/' file
第一个域末尾不是ly的行;  !~//表示不匹配正则表达式           $行尾/ly$/以ly结尾的行

awk '/^(No|no)/' file
打印行首为No或者no的行;       ^(No|no)         

awk 'BEGIN {print "file head \n"} {print $1 \t $4}' file
awk 'BEGIN {print "file head \n"} {print $1 \t $4}' file |tee out.file
打印文件的时候附加一个文件头

awk 'BEGIN {print "file head \n"} {print $1 \t $4} END {print "end of file"}' file
打印文件的时候附加一个文件头和文件尾

awk中使用正则表达式
awk '{if( $1~/hello/) print $0}' file
如果域1中包含hello,就打印所有的域    
~//表示匹配正则表达式,!~//表示不匹配正则表达式

awk '{if($6<$7) print $0}' file
awk '{if($1=="abc") ($1="def") print $0}' file
awk '{if($1=="abc")  {($1="def") print $0}}' file 只打印修改的部分 {    }


awk表达式:
<,<=,>,>=,==,!=,~,!~(匹配,不匹配)

awk ‘$3 ==5346' file
第三个域等于5346,就打印出该行;

awk '$3>5000  {print $1}' file
第三个域大于5000就打印该行第一个域

awk '{max= {$1>$2}?$1:$2; print max}' file
如果第一个域大于第二个域,max=$1否则=$2,打印最大值 A

awk '{print ($1==11 ?"high\t" $2 :"low\t" $2)}' file

&&逻辑和,||逻辑或,!逻辑非
awk '$2==$5 && $3>5' file

awk ' /Tom/,/Jary/' file
Tom第一次出现和Jary第一次出现之间的所有行;

awk '/north/  {print $3+10}' file
包含north行的地三个域加10;

awk '$3=="aa"  {$2="dd"; print $0}' file
将地三个域为aa的行的第二域变成dd,并打印该行;

**awk编程:
使用变量
awk '$1~/Tom/ {wage=$2+$3; print wage}' file    ~//表示匹配正则表达式

先扫描第一个域,如果匹配Tom,就将第二和第三域的总和赋值给变量wage并输出;

awk 'BEGIN{FS=":"; OFS="\t";ORS="\n\n"}{print $0}' file
处理文件前设置  ??
域分隔符(FS)为(:)
输出域分隔(OFS)为(\t)
输出记录分隔符(ORS)为(\n\n)

awk 'END{print "The number of record is:'  NR}' file
处理完文件后执行END语句
输出总记录数

awk '/Mary/ {count++} END{print "Mary was found" count "times"}' file
计数文件中Mary出现的次数;

**awk输入输出重定向

awk '$4>=70 {print $1, $2  >"outfile"}' file
结果重定向到文件outfile中

awk 'BEGIN{"date" |getline d; print d}'
将date结果输给getline函数,并打印      BEGIN{      }
( getline从标准输出,管道等获得输入)

awk 'BEGIN{"date" |getline d;  split(d,mon); print mon[1] mon[2]}'
将date结果输给getline函数,slpit将d分解成数组,打印数组第2个变量
**split函数:split(string,array,field seperator)

awk 'BEGIN{while("ls"|getline) print}'
依次输出ls的每一项  ?

awk 'BEGIN{print "what is your name?"; getline name  <" /dev/tty"} $1~name {print "Found" name "on line" NR "."} END{print "see you" name}' file
从标准输入设备输入姓名,然后在文件file的第一个域内匹配,并做相应输出 ??

awk 'BEGIN{while(getline <"/etc/passwd" >0) {lc++; print lc " " a}}'
awk 'BEGIN{while(getline a <"/etc/passwd" >0) {lc++; print lc}}'
如果文件不存在,getline返回-1
到达文件尾返回0
读到一行返回1
读取文件/etc/passwd,计数行数


**awk控制语句
if语句:
awk '{if($6>50) print $1 "too high"}' file
awk '{if($6>20 && $2<=50) {safe++; print safe}}' file
awk '{if($5>50}{x++; print x} else {y++;print y}' file

awk '{if($1~/peter/){next} else {print}}' file
如果第一个域包含peter,awk就忽略这一行,读取文件的下一行,脚本从头开始执行;

循环语句:
awk '{i=1; while(i<=NF) {print NF, $NF; i++}}' file
awk '{for(i=1;i<=NF;i++) print NF, $NF}' file
循环中可以使用break和continue终止或者回到循环开始处继续循环;

**awk数组:
awk 'BEGIN{x=1} {name[x++]=$2}; END{for(i=1;i<=NR;i++) print i,name[i]}' file
将文件file第二个域读入数组name中,并依次输出他们
awk '{id[NR]=$1}; END{for(i=1;i<=NR;i++) print i,id[i]}' file

awk '/^Tom/ {name[NR]=$2}; END{for (i in name) print i, name[i]}' file
读取行首为Tom的行的第二个域到数组name,最后输出name

数组下标可以使用字符串
/Tom/{count["Tom"]++}
/Mary/{count["Mary"]++}
awk '{count[$2]++}; END{for (name in count) print name, count[name]}' file

***awk的命令行参数
ARGC参数个数
ARGV参数列表(数组下标从0开始)

使用命令行参数的例子:
test.awk
BEGIN{FS=":"; name=ARGV[2]}
$1~name{print $0}

awk -f test.awk file "Tom"

***awk内建函数:
*sub,gsub: 替换函数
awk '{sub(/Mac/,"MacIntosh"); print}' file
用MacIntosh替换Mac

awk '{sub(/Mac/,"MacIntosh",$1); print}' file
第一个域内用MacIntosh替换Mac

*index子串位置
awk '{print index("hello","lo")}' file

字串长度
awk '{print length("hello")}' file

取子串:
awk '{print substr("hello",3,2)}' file
从地三个字符开始取子串,长度为2

改变大小写
awk 'BEGIN{print toupper("hello"), tolower("HELLO")}' file

***自定义函数
function funname(parameter,.....){
函数体
}

---------------------------------------------------------------------------
---------------------------------------------------------------------------
**输入与输出
1.
echo
\c 不换行
\n 换行
-e 当echo后面文字包括 转义字符的时候要使用-e   ?
echo ''name? \c"
echo -e "\007 your home is $HOME, you are connect on `tty`"

2.
cat
cat file1 file2 file3 > file
cat  -v file 显示文件,包括其中的控制符(-v)
cat -n file 为每一行编号
cat -b file 每个非空行编号
cat -T file 以^I显示tab

3.
管道 | 把一个命令的输出传递给另外一个命令为输入

ex:
ls | grep file.doc
查找文件file.doc

who | awk '{print $1  "\t" $2}' 只显示用户名和所在终端
df -h | awk '{print $1}' |grep -v "filesystem" (-v表示输出不包括filesystem的项目)
df -h | awk '{print $1}' |grep -v "filesystem" |sed ' s/\/dev\///g' 显示设备的时候不显示/dev/

4.tee
who | tee who.txt 输出到屏幕的同时输出到文件
who | tee  -a who.txt 附加在文件的后面

5.文件重定向
ls -l | grep ^d >file.out 所有目录名字重定向到一个文件

cat /etc/passwd | awk  -F: '{print $1}' |sort >a.out (-F:指定分隔符为:) ?

cat >file.out  << EOF 在输入内容的时候,当EOF单独出现在一行的时候表示文件输入到此结束

---------------------------------------------------------------------------
chmod [u g o a] [+ - =] [r w x s l] file
s:给文件属主和组set-ID
l:给文件加锁,使得其他的用户不能访问

*suid和guid
suid意味着如果某个用户对属于自己的shell脚本设置了这种权限,则其他用户在执行这个脚本时也具有其属主的相应权限。
设置suid,4xxx,设置guid,2xxx,两者同时设置,6xxx
要设置文件的suid和guid必须同时具有相应的执行权限,否则在相应的位置会出现S标识而不是s。

chown -R -h ower:group file
-h:表示只改变符号链接的属主不影响其所指向的目标文件

---------------------------------------------------------------------------
**自动ftp传输
lftp < file

$ cat file
open -u zhao,pass hostip
binary
cd dir
mget *


tcsh:
set prompt='[%n@%m %c]$' 用户名@主机名 当前目录名
bash:
export PS1="[\n@\h \w]$"
---------------------------------------------------------------------------
---------------------------------------------------------------------------
1.
man -k keyword
在man数据中查找关键词

2.
at now +3 hours
at> reboot
at> ctrl+D
3小时后reboot

3.
bc - 计算器
scale=3 设置小数点后数字为数
ibase=2 二进制运算

4.
ls -d dir
只显示目录而不显示其下面的文件。

5.
sync
更新superblock并把它写入硬盘

6.
scp user@host:/path/file1 user@host:/path/file
服务器间拷贝文件
Linux Shell脚本工具箱:55个实战案例从入门到精通 Shell脚本是Linux系统管理与自动化运维的核心工具,通过将重复性命令行操作封装为可执行脚本,能够显著提升工作效率与系统可靠性。其工作原理基于Bash解释器,通过组合系统命令、控制结构和文本处理工具,实现复杂任务的自动化。在技术价值层面,Shell脚本以其轻量级、无需编译、直接调用系统能力的特性,成为DevOps、系统运维和数据处理领域的必备技能。典型应用场景包括批量文件处理、系统状态监控、日志分析、定时任务调度以及自动化部署流程。本文聚焦于构建一个即拿即用、安全可靠的Shell脚本工具箱,涵盖从基础语 阅读详情

相关推荐

macOS 系统 Bash 3.2.57 升级 5.x 原理解析:GPLv3 许可与 SIP 安全机制的 2 种绕过方案

本文深入解析了macOS系统中Bash从3.2.57升级到5.x版本的原理与实践方案,重点探讨了GPLv3许可与SIP安全机制的冲突及两种绕过方案。通过对比新旧版本功能差异,提供用户空间安装和系统级替换两种升级路径,帮助开发者在保持系统安全性的同时获得现代Bash的强大功能。

347

sed、xargs 命令

这两天笔试做了一道题,要我找到当前目录下所有xml文件,并且把里面的hello替换为world。找到所有xml好办,find命令就好,但怎么替换里面的内容就一脸懵逼了。然后今天查了下,看到可以用sed或者xargs命令,所以就学了一下。 一. sed sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为...

SJLin 6054

终端命令行入门与高效使用指南:从基础操作到开发运维实战

命令行界面(CLI)是用户与操作系统内核直接交互的文本输入环境,其核心原理在于通过解析和执行预定义或自定义的文本指令来控制系统资源与进程。相较于图形界面,命令行在批量处理、远程操作和自动化脚本方面具有显著的技术价值,能极大提升开发、运维及数据处理场景下的工作效率。在应用层面,无论是文件系统导航、进程监控、网络诊断,还是版本控制与包管理,命令行工具都扮演着关键角色。本文聚焦于终端的高效使用,详细解析了在Windows、macOS及Linux系统中打开终端的多种方式,并系统梳理了文件操作、系统监控、Git、包管

weixin_30470643的博客 446

linux | sed 命令使用 | xargs命令 使用

sed命令最初由贝尔实验室开发,后被众多Linux系统集成,能够通过正则表达式对文件进行批量编辑,让重复性的工作不再浪费时间。xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。xargs(英文全拼: eXtended ARGuments)是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。写的有点乱 ,后面逐步完善, sed 命令 很重要 配上 正则 无敌!

ttxiaoxiaobai的博客 785

第五章 文本处理工具和正则表达式 -- 文本处理三剑客之 grep

本文介绍了Linux文本处理三剑客(grep、sed、awk)中的grep命令。grep主要用于文本搜索,通过正则表达式模式对目标文件逐行匹配并输出匹配行。文章详细说明了grep的基本格式和常见选项,如颜色显示(-color)、匹配次数(-m)、反向匹配(-v)、忽略大小写(-i)等,并通过多个实例演示了grep在文件搜索中的实际应用,如查找特定用户、过滤进程信息等。grep配合管道可高效处理文本数据,是Linux系统管理和日志分析的重要工具。

Raymond的博客 344

CAN 比特率和采样点计算

架构根据输入频率和比特率自动计算。

ldinvicible的专栏 787

xargs 和 sed 一起使用

全局将 basiclibrary 替换为 basicLibrary。全局将 yt/Documents/code 替换为 ty/practice。注意:xargs 后不要使用 |

tianyexing2008的博客 544

【遥感数字图像处理(朱文泉)】各章博文链接汇总及思维导图

遥感数字图像处理(北京师范大学朱文泉教授)课程各章博文笔记汇总,及各章节思维导图

甜子yu的博客 2623

Linux教程之文本处理(sed,xargs,wc)

Linux教程之文本处理(sed,xargs,wc)

为生信助力 641

DisplayPort 1.4扰码原理与16位并行LFSR实现

DisplayPort物理层信号完整性依赖于数据扰码技术,其本质是通过线性反馈移位寄存器(LFSR)对传输数据进行伪随机化处理,以改善频谱分布、抑制低频能量堆积、提升时钟恢复能力并降低EMI辐射。该技术广泛应用于高速串行接口如DP、PCIe和USB,核心在于确定性伪随机序列生成与收发端同步。DisplayPort 1.4强制要求符合ANSI X3.230标准的16级LFSR,并在8b/10b编码后执行扰码;而传统串行实现难以满足21.6Gbps速率下的时序约束,必须采用并行展开结构——将16拍移位压缩为单周

weixin_29192211的博客 313

lammps案例:reaxff势模拟Fe(OH)3高温反应过程

所有的reaxff模拟,如:氧化、腐蚀、热裂解、燃烧等模拟,均可采用此模拟框架,只需要更换data文件、势文件,代码中的control文件可以不写,电荷平衡文件也可以用reaxff替换。该案例主要模拟Fe(OH)3在高温下的反应过程,主要代码来自lammps自带的案例。lammps自带案例没有产物输出,故在此基础上稍加修改,增加了产物输出命令。如果需要系统学习反应势的模拟,可考虑报名培训课程。本文分享一个reaxff反应势的案例。in文件代码已经注释,以供参考。大家好,我是小马老师。

lammps_jiayou的博客 1966

grep sed find xargs gawk 输入输出等

正则表达式\分别表示单词的开始和结束ex: \ 以T或者t开头,om结尾的单词正则表达式的元字符集:1) ^行首  /^love/ 以love开头的行;2) $行尾 /love$/ 以love结尾的行;3) .    /l..e/ 匹配所有这样的行,字母l后面紧跟任意两个字符然后是e的行4) *  重复0次或者任意多次前面字符5) [x-y] 字符范围6) [^x-y] 排除字符范围7) \ 转义...

i'm thinking... 551

Android 12.0 系统开机设置默认横屏显示

在12.0的系统产品开发中,对于产品需求来说,由于是宽屏设备所以产品需要开机默认横屏显示,开机横屏显示这就需要从两部分来实现,一部分是开机动画横屏显示,另一部分是系统显示横屏显示,从这两方面就可以做到开机默认横屏显示了。

安卓兼职framework和app工程师的博客 3744

grep、 sed、 find 、xargs、 gawk 输入输出整理

正则表达式 \< \>分别表示单词的开始和结束 ex: \<[Tt]om\> 以T或者t开头,om结尾的单词 正则表达式的元字符集: 1) ^行首 /^love/ 以love开头的行; 2) $行尾 /love$/ 以love结尾的行; 3) . /l..e/ 匹配所有这样的行,字母l后面紧跟任意两个字符然后是e的行 4) * 重...

weixin_34392843的博客 156

【原创】关于西门子S120 的电气图纸设计

我们首先要了解一下模块的基本信息:SINAMICS 功率模块 PM240-2 三相交流380-480V+10/-10% 47-63Hz;至此,我们选择的驱动系统配置的资料都已经查找完毕,接下来就是根据每个部件的功能接口和我们需要实现的功能画出接线连接图,这样关于伺服电机控制,硬件部分设计就完成了。2)FSA - FSC 型功率模块 PM240-2 的屏蔽连接板外形尺寸图,所有数据以毫米(英寸)为单位。1)FSA 型功率模块 PM240-2 的外形尺寸图,所有数据以毫米(英寸)为单位。

Qinmingyue13的博客 2640

Linux安装MinIO(图文解说详细版)

最近开个新坑,就是在linux环境中操作开发环境,带大家玩转Linux,会整理出一篇Linux的专栏,欢迎大家订阅!! 富贵同学linux环境为CentOS7.8 版本。 上期跟大家说了一下OpenJDK的安装,这次说一下minio的安装 第一步,进入/opt 目录,创建minio文件夹 cd /opt mkdir minio 第二步,wget下载安装包: wget https://dl.minio.io/server/minio/release/linux-amd64/minio 第三步,进入m

编码人生 5万+

linux下使用find xargs grep查找文件及文件内容

1,在某个路径下查文件。 在/etc下查找“*.log”的文件 find /etc -name “*.log” 2,扩展,列出某个路径下所有文件,包括子目录。 find /etc -name “*” 3,在某个路径下查找所有包含“hello abcserver”字符串的文件。 find /etc -name “*” | xargs grep “hello abc

sir_zeng的专栏 5663

AI智能体丨使用Coze一键生成中式养生视频,39 条作品涨粉 37.9 万!(附保姆级教程)

本文介绍如何利用扣子(Coze)AI智能体工作流高效制作中式养生短视频。该方案通过AI自动生成养生文案、古风插画素材、语音合成和视频剪辑,将传统制作流程从2-3小时缩短至1-2分钟。工作流包含文案创作、音频生成、图片素材制作和视频合成四大模块,采用大模型处理各环节内容,最终输出可直接导入剪映的草稿文件。特别适合希望快速批量制作文化氛围感强、兼具干货与视觉效果的养生内容创作者,效率提升近百倍。

李同学Lino的博客 3029

SHELL学习之二--(转 grep sed find xargs gawk 输入 等操作)

<br />正则表达式<br />/分别表示单词的开始和结束<br />ex: / 以T或者t开头,om结尾的单词<br />正则表达式的元字符集:<br />1) ^行首  /^love/ 以love开头的行;<br />2) $行尾 /love$/ 以love结尾的行;<br />3) .    /l..e/ 匹配所有这样的行,字母l后面紧跟任意两个字符然后是e的行<br />4) *  重复0次或者任意多次前面字符<br />5) [x-y] 字符范围<br />6) [^x-y] 排除字符范围<br

tongdh的专栏 997

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

8个高效Shell命令提升数据科学工作流效率

Shell命令是数据工程中不可或缺的基础能力,尤其在处理大规模原始数据时,其流式处理、低内存占用和高执行效率远超通用编程语言。本文围绕awk、grep、sort、uniq、head、tail、wc、shuf等核心POSIX命令,深入解析其在数据探查、清洗、采样、校验与质量监控中的实际应用逻辑;强调命令组合的原子性设计原则——单条命令解决一个完整子任务,如用awk替代Pandas做列级聚合、用shuf实现O(1)内存随机抽样。这些技术不仅适用于日志分析、CSV诊断、ETL验证等典型场景,更是构建CI/CD中轻

weixin_34161032的博客 414

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Linux运维必备20个高阶命令实战指南

Linux命令行是系统管理与故障排查的核心能力,其本质是操作系统内核、文件系统、进程模型和网络栈的直接交互接口。掌握关键命令不仅需要理解语法,更要洞悉底层原理——如ls读取inode元数据实现毫秒级时间筛选,ss直连/proc/net接口比netstat快5倍的性能差异,find的-mtime按24小时整数倍计算的时间精度陷阱。这些命令的技术价值在于支撑日志分析、磁盘诊断、服务监控、网络排查和安全加固五大高频生产场景。本文聚焦20个经500+线上故障验证的‘最小生存工具集’,覆盖df/du磁盘定位、jour

weixin_34321753的博客 330

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Linux系统运维20个核心命令实战地图

Linux命令是操作系统与用户交互的基础接口,其本质是调用内核系统调用、操作文件系统、进程树和I/O子系统的工具链。掌握命令不能止于参数记忆,而需理解背后原理:如`df`与`du`差异反映块设备层与inode层的空间统计逻辑,`find`基于目录树遍历而`grep`专注文本模式匹配,`type`可识别内建命令/别名/外部二进制,直接关系脚本兼容性与PATH调试。这些能力构成Linux故障定位、性能分析、安全审计和信创环境适配的技术底座,在运维、开发、测试及国产化迁移等高频场景中不可或缺。本文聚焦20个经多行

weixin_33910137的博客 432

ebook-tools核心功能解析:从ISBN识别到元数据自动获取

想要快速整理混乱的电子书库吗?ebook-tools是一套强大的Shell脚本工具集,专门用于自动化管理和组织大型电子书收藏。这个开源工具通过智能ISBN识别和在线元数据获取,能够将杂乱无章的电子书文件自动整理为规范命名的有序文件。无论您是拥有数千本电子书的收藏家,还是需要整理工作文档的专业人士,ebook-tools都能为您节省大量手动整理的时间。 ## 📚 核心功能概览 ebook-to

gitblog_00872的博客 826
上一篇: shell编程if/then备忘
下一篇: 修正IE6不支持position:fixed的bug
workwithwebis3w
博客等级 码龄16年 18粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值