【linux下精确替换某个字符串】教程文章相关的互联网学习教程文章

linux – 使用BASH中的特殊字符从文件名中删除子字符串【代码】

我的目录中有一个文件列表:opencv_calib3d.so2410.so opencv_contrib.so2410.so opencv_core.so2410.so opencv_features2d.so2410.so opencv_flann.so2410.so opencv_highgui.so2410.so opencv_imgproc.so2410.so opencv_legacy.so2410.so opencv_ml.so2410.so opencv_objdetect.so2410.so opencv_ocl.so2410.so opencv_photo.so2410.so它们是批量重命名产生的一系列错误的产物,现在我无法弄清楚如何从它们中删除中间的“.so”.例...

linux – 如何检查(和删除)最后一行(包含字符串的最后一行)是否有逗号作为最后一个字符?【代码】

我一直在寻找互联网,但没有结果. 我正在尝试构建一个包生成器(在shell / bash中),并且相应的包包含(一个或多个)json文件.浏览json文件时,如果用户想要删除其中一个步骤,我必须首先考虑如果要删除的步骤是最后一步.如果是这样,最后一步的前一个将包含一个逗号,但json格式不允许这样做.{"operation_machinetype": "Ford","operation_steps": ["steps/Step_1/01_paint_the_car.json","steps/Step_2/01_drive_the_car.json","steps/Ste...

linux – 如果文件中的字符串只包含使用Bash在另一个文件中找到的数字,那么如何替换文件中的字符串?【代码】

我想使用Bash替换以下file.csv中的所有目标实例,但仅当包含它的行还包含list.txt中找到的数字时: FILE.CSV:1,abc,target,abc 2,abc,target,abc 3,abc,target,abcLIST.TXT:1 3期望的输出:1,abc,replace,abc 2,abc,target,abc 3,abc,replace,abc我试图使用sed:sed 's/target/replace' file.csv > newfile.csv如何在list.txt中包含检查每一行的逻辑?解决方法:这是一个更适合awk的工作:awk 'BEGIN { FS=OFS="," } # set i...

Linux查找含有某字符串的所有文件

如果你想在当前目录下 查找"hello,world!"字符串,可以这样: grep -rn “hello,world!” : 表示当前目录所有文件,也可以是某个文件名 -r 是递归查找 -n 是显示行号 -R 查找所有文件包含子目录 -i 忽略大小写 下面是一些有意思的命令行参数: grep -i pattern files :不区分大小写地搜索。默认情况区分大小写, grep -l pattern files :只列出匹配的文件名, grep -L pattern files :列出不匹配的文件名, grep -w pattern file...

linux – 删除以特定字符串开头的所有目录【代码】

我必须使用什么命令来删除所有以“graphene-80”开头的目录 我可以在“rm”命令中添加什么作为选项?解决方法:使用find命令:find /tmp -type d -name 'graphene-80*' -delete使用的参数: > -type仅过滤目录并避免查找文件> -name查找与引号之间定义的模式匹配的文件> -delete删除find命令的结果 编辑:清洁与-delete,如本文所示:Find files matching template and remove

linux – 如何在ksh中过滤字符串数组【代码】

我想从“aa”数组中删除“bb”数组中定义的IP,因此IP的255.0.0.0和255.255.255.0将从数组中的列表中删除. 当我运行我的ksh代码然后打印数组aa时,我看到IP-255.255.255.0没有被删除? 我的语法有什么问题?echo ${aa[*]}45.32.3.5 255.0.0.0 255.255.255.0 19.23.2.12echo ${bb[*]}255.0.0.0 255.255.255.0ksh程序:for run in ${bb[*]}dofor ((i=0; i<${#aa[@]}; i++)); do[[ ${aa[i]} == $run ]] && unset aa[i]donedone测试:ec...

linux – 如何在shell脚本bash中检查子字符串?【代码】

实际上字符串是new.tar.gz我想检查这个文件是否是tar包?解决方法:使用file命令检查它.$file new.tar.gz new.tar.gz: gzip compressed data, last modified: Tue Sep 26 16:50:00 2017, from Unix要检查压缩文件的内容,您必须将其解压缩,然后在其上运行文件:$gunzip -k new.tar.gz; file new.tar new.tar: POSIX tar archive (GNU)

linux – 在执行ls和类似的commad时用已知字符串替换UID【代码】

在执行像LS这样的命令时我得到这样的输出(在NFS安装的远程文件夹上这样做)-rw-r--r--. 1 4016 folderA 23 Mar 31 10:47 soto_file这是完全正确的,文件是由ID为4016的用户在另一台计算机上创建的.但是做ls的计算机显然不知道这个UID.我的问题是,在不创建新用户的情况下,在执行ls时是否可以用字符串替换它?否则这是非常无法提供的(这是其他用户必须使用的东西,他们不知道哪个号码对应于每个用户).解决方法:在运行的系统和大...

linux – 如何查找具有特定字符串集的特定文件?【代码】

这是给出的文件集:./20170524/18909-20170524182010-PBS74C2VTTCKBMKGQC7YUVEJ3U-362511-19614379.XFA.SOFS_EDI ./20170524/18909-20170524182009-PBS74C2VTTCKBMKGQC7YUVEJ3U-362514-19614381.XFA.SOFS_EDI ./20170524/18909-20170524182010-PBS74C2VTTCKBMKGQC7YUVEJ3U-362532-19614390.XFA.SOFS_EDI ./20170524/18909-20170524182009-PBS74C2VTTCKBMKGQC7YUVEJ3U-362503-19614371.XFA.SOFS_EDI ./20170524/18909-2017052418200...

linux – cat in expect脚本在字符串结尾添加新行【代码】

我在expect脚本中有以下内容spawn cat version expect -re 5.*.* set VERSION $expect_out(0,string) spawn rpm --addsign dist/foo-$VERSION-1.i686.rpmcat命令正确获取版本,但它似乎是添加一个新行.因为我希望输出如下: DIST /富-5.x.x-1.i686.rpm 但是我开始在下面开始包含错误:cannot access file dist/foo-5.x.x -1.i686.rpm为什么期望在cat命令输出中添加一个新行,是否有任何方法可以不执行此操作或修复cat命令的输出?解决...

linux – 在命令行上实现类似hexdump的格式,包括二进制字符串?【代码】

我真的很喜欢hexdump,特别是因为你可以定义一个自定义格式;说:$echo -e '\x00\x01\x02\x03' | hexdump -v -e '1/1 "%_ad: "' -e '4/1 "%02X "' -e '1/1 " : "' -e '4/1 "%_p"' -e '1/1 "\n"' 0: 00 01 02 03 : .... 4: 0A : .所以,我可以选择每行4个字节,先写为十六进制,然后写成字符.但是,我在这里缺少的是一个“二进制字符串”(或“位串”)格式化字符;例如我想写一些像-e’4 / 1“?b”’在某个命令行中的某个地方,然后...

linux – 使用单个内置命令在子目录中查找文件中的子字符串?【代码】

在Windows中,如果我想在所有子目录中的所有文件中找到一个字符串,我会做类似的事情findstr /C:"the string" /S *.h但是,在Linux(比方说,Ubuntu)中,除了一些涉及find,xargs和grep的管道命令之外,我找不到其他方法(示例在此页面:How can I recursively grep through sub-directories?).但是,我的问题是不同的:是否有任何单一的内置命令可以通过这种魔法工作,而无需编写我的shell脚本?解决方法:GNU grep允许通过子目录递归搜索:gr...

linux – 打开手册页并在单个命令中搜索字符串【代码】

而不是做man chmod然后/ ax跳转到提到ax的chmod手册页的第一部分,我想知道是否有办法将手册页打开到特定的搜索字符串,类似于你怎么做在vi(m)中执行vi string filename.txt.解决方法:尝试这个技巧:man chmod | less +'/a\+x'要么man chmod | more +'/a\+x'在标志之前有一个反斜杠,因为之后是/是一个extended regular expression.

c – 如何在fork的帮助下平行搜索文件中的字符串? (GNU Linux / g)

我有一个带有几行的文本文件,我在这个文件中寻找一个字符串.我需要将以下命令行参数传递给程序:– 文件路径 – 我正在寻找的字符串 – 允许程序“分叉”以完成此任务的最大进程数. 应该如何构建这样的程序?解决方法:几个想法. >您必须分别从每个进程打开文件,否则它们将共享一个文件描述符,因此在文件中具有共享位置(或者不是,请参阅注释,因为这可能是系统特定的……).>由于磁盘访问和/或缓存未命中模式,您可能看不到您希望的速度...

linux – 如何验证两个字符串是否是使用ssh-keygen生成的密钥对?【代码】

我有一个使用ssh-keygen生成的私钥和一个公钥列表.我想知道其中一个公钥是私钥的公共对.是否可以使用CLI比较私钥/公钥对,看它们是否匹配?解决方法:您可以使用私钥从公钥中提取公钥ssh-keygen -y-y This option will read a private OpenSSH format file and print anOpenSSH public key to stdout.例:$ssh-keygen -y -f my_file AAAAB3N...如果需要,您可以在公钥列表中grep查找此提取密钥的一部分,以找到正确的密钥.