【linux 命令 - 搜索字符串的命令 grep】教程文章相关的互联网学习教程文章

linux-如何从bash中的字符串获取数字值【代码】

我有一个xml文件,我只想从文件中的字符串中提取数值.我想到的解决方案之一是cat file.xml |grep -i "mu "| grep -o '[0-9]'但是我得到每个数字用换行符隔开,例如100,我先得到1然后换行,然后0依此类推.我想到的另一个解决方案是cat file.xml |grep -i "mu "|cut -d ' ' -f 4| tr '=' ' '|cut -d ' ' -f2|tr '""' ' '|sed -e 's/^ *//g' -e 's/ *$//g'我的问题:对于这个问题,是否有一种更简单的解决方案,即我仅从一行中获取一个数值...

linux-如何从字符串中为文件中的每一行选择第n个字符?【代码】

每行都有一个单词和一个数字.我需要以某种方式选择第n个字母,它们将共同构成一个新单词.例如:and 3 for 3 map 2 wrestle 1draw它必须像这样开始cat char.txt | ...并且只允许我使用sed(没有awk,perl等). 我知道如何选择所有数字sed 's/\(.*\) \(.*\)/\2/g'或文字sed 's/\(.*\) \(.*\)/\1/g'我在想cat char.txt | head -c $(sed 's/\(.*\) \(.*\)/\2/g') | tail -c 1 | sed 's/\n\//g'但是它不起作用,因为它不会迭代所有行,并且由于...

Linux-Bash-使用字符串变量创建字符串【代码】

我有一个名为CURRENTDATE = 20151105的变量. 我想创建一个字符串,如下所示: abc_20151105_20151105 我尝试了以下变体:echo "abc_$CURRENTDATE_$CURRENTDATE" This gave abc_20151105echo "abc_'$CURRENTDATE'_'$CURRENTDATE'" This gave abc_'20151105'_'20151105'我在这里想念什么?提前致谢!解决方法:问题在于,下划线是变量名的有效字符.尝试以下方法之一:echo "abc_"$CURRENT_DATE"_"$CURRENT_DATE echo "abc_${CURRENT_DA...

Linux将字符串添加到特定行的开头【代码】

我有一个制表符分隔的文本文件,以一些以’#’开头的行开头.#line1 #line2 #line3 1 a 1 b现在,对于不是以“#”开头的每一行,我想添加一个字符串“ text”.#line1 #line2 #line3 text1 a text2 b我怎样才能做到这一点?我想到了与sed合作sed "s/^[^#]/text/g" infile > outfile但是,每一行第一列的输出只是’text’,而不是’text1’或’text2′.解决方法:您需要捕获然后引用由[^#]匹配的字符:sed 's/^[^#]/text&/' inf...

Windows 10 Linux子系统-Python-电脑剪贴板的字符串【代码】

我有一个python脚本,我想在计算机的剪贴板中放置一个字符串.我可以在Linux,Mac和以前使用cygwin的Windows中使用它.我必须修改一行代码才能使其在相应的系统中工作.我无法将字符串复制到Windows 10本机Linux子系统上的剪贴板.下面的行导致错误:sh:1:无法创建/ dev / clipboard:权限被拒绝.知道如何修改此行吗?os.system("echo hello world > /dev/clipboard")解决方法:要在Windows上获取剪贴板内容,可以使用win32clipboard:im...

linux-bash中的字符串/数组操作?【代码】

我想在bash(.bashrc)中使用类似的方式,以便根据用户登录的comp设置别名.我不知道如何从10.0.0.210中获取210,然后再通过最佳方式列表“ user = xxx”$radek ='210' $mike ='209'#SSH_CLIENT='10.0.0.210 53039 22' <--- system variable $user = based on the 4th part of IP so $user = radek if 210$user = mike if 209alias sites='cd /var/lib/code/'+$user所以最终的别名看起来像 如果从210台计算机登录,则为“ cd / var / li...

有没有简单的方法可以在C,linux中将字符串“ 5 <6”转换为true?

我正在编写一种算法,该算法计算约束系统的解决方案数量.在这种情况下,约束是诸如“ a< b”或“ a = 3 b或a = 6 b”之类的谓词,我将这些谓词作为输入字符串接收.我需要能够询问变量的任何给定值选择是否是有效组合,并且我宁愿不必构建解析器来执行此操作.是否有一个快速的C库,可将字符串作为数学表达式求值?我认为我有一种简单的方法可以将“ a< b”转换为“ 5< 6”,我只需要一种评估方法.解决方法:编写简单的算术表达式解析器是学...

linux-替换所有不包含匹配字符串的行【代码】

我正在使用如下所示的数据文件:text in file hello random text in file example text in file words in file hello more words in file hello text in file can be more text in file我正在尝试使用sed将不包含字符串hello的所有行替换为match,因此输出为:match hello random text in file match words in file hello match hello text in file can be match我尝试使用sed’/ hello /!d’,但这会删除该行.另外,我读到我可以使用...

linux-使用Sed用字符串变量替换字符串变量【代码】

这个问题已经在这里有了答案: > “sed” special characters handling 3个> Is it possible to escape regex metacharacters reliably with sed 2个> Escape a string for a sed replace pattern 13个我有一个名为ethernet的文件,其中包含多行.我将这些行之一保存为名为...

Linux-用另一个文件中的值替换文件中的字符串【代码】

我有两个文件.其中一个定义了一组数字-值对,如下所示(文件A):1 asm2 assert3 bio4 bootasm5 bootmain6 buf7 cat8 console9 defs 10 echo另一个文件包含一堆值配对,如下所示(fileB):bio types bio defs bio param bio spinlock bio buf bootasm asm bootasm memlayout bootasm mmu bootmain types bootmain elf bootmain x86 bootmain memlayout cat types cat stat cat user我想编写一个脚本,用文件A中的相应数字替换文...

linux – 如何替换束文件中的多行字符串【代码】

#!/bin/sh old="hello" new="world" sed -i s/"${old}"/"${new}"/g $(grep "${old}" -rl *)前面的脚本只适用于单行文本,如何编写可以替换的脚本多行文字.old='line1 line2 line3'new='newtext1 newtext2'我可以使用什么命令.解决方法:您可以使用perl或awk,并将记录分隔符更改为换行符以外的其他内容(这样您就可以匹配更大的块.例如,使用awk:echo -e "one\ntwo\nthree" | awk 'BEGIN{RS="\n\n"} sub(/two\nthree\n, "foo")'或者使用...

Linux Shell脚本 – 与通配符的字符串比较【代码】

我试图看看一个字符串是否是shell脚本中另一个字符串的一部分(#!bin / sh). 我现在的代码是:#!/bin/sh #Test scriptje to test string comparison!testFoo () {t1=$1t2=$2echo "t1: $t1 t2: $t2"if [ $t1 == "*$t2*" ]; thenecho "$t1 and $t2 are equal"fi }testFoo "bla1" "bla"我正在寻找的结果是,我想知道“bla1”中存在“bla”的时间. 谢谢和亲切的问候, 更新:我已经尝试了这里描述的“包含”功能:How do you tell if a s...

linux – 如何在bash中复制字符串?【代码】

我在bash中有以下字符串str="kallel"我想从str创建一个str2. str2包含str重复,直到长度= 20.所以结果应该是这样的:str2="kallelkallelkallelka"怎么做在bash?解决方法:这应该工作:str="kallel" str2="${str}" while (( ${#str2} < 20 )) dostr2="${str2}${str}" done str2="${str2:0:20}"

linux – 在bash上对版本字符串进行排序【代码】

STRINGS.txt的示例内容:3.0.33.0.11.23.0.11.13.0.113.0.163.0.15.13.0.153.0.143.0.10.33.0.10.23.0.10.13.0.13.13.0.103.0.133.0.93.0.123.0.83.0.7.23.0.7.13.0.73.0.9.23.0.9.13.0.23.0.8.13.0.6.13.0.63.0.53.0.13.0.0是否可以仅使用bash对所有这些版本字符串进行排序,最新版本是否在顶部?解决方法:这是可能的,但却是一项愚蠢的工作.如果你有GNU排序:sort -V -r <STRINGS.txt……将完全按照你的要求行事. 现在,如果你的意思...

linux – 使用从另一个文件复制的内容替换文件中的字符串【代码】

我已经想出并尝试使用gsed -i命令替换字符串,如下所示:gsed -i 's/sdkUniqueKey=""/sdkUniqueKey="123"/g' AppConstants.txt现在我想对我文件中的另一个字符串执行相同的操作,但正如我的问题所述,我需要先从另一个文件中复制内容然后替换一个字符串,例如:gsed -i 's/sdkPrivateKey=""/sdkPrivateKey="contentsCopiedFromAnotherFile"/g' AppConstants.txt还有一件事,内容(要复制),其中有下一行和空格,我想在复制之前将其删除.它还...