我有一个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'我的问题:对于这个问题,是否有一种更简单的解决方案,即我仅从一行中获取一个数值...
每行都有一个单词和一个数字.我需要以某种方式选择第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'但是它不起作用,因为它不会迭代所有行,并且由于...
我有一个名为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...
我有一个制表符分隔的文本文件,以一些以’#’开头的行开头.#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...
我有一个python脚本,我想在计算机的剪贴板中放置一个字符串.我可以在Linux,Mac和以前使用cygwin的Windows中使用它.我必须修改一行代码才能使其在相应的系统中工作.我无法将字符串复制到Windows 10本机Linux子系统上的剪贴板.下面的行导致错误:sh:1:无法创建/ dev / clipboard:权限被拒绝.知道如何修改此行吗?os.system("echo hello world > /dev/clipboard")解决方法:要在Windows上获取剪贴板内容,可以使用win32clipboard:im...
我想在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...
我正在编写一种算法,该算法计算约束系统的解决方案数量.在这种情况下,约束是诸如“ a< b”或“ a = 3 b或a = 6 b”之类的谓词,我将这些谓词作为输入字符串接收.我需要能够询问变量的任何给定值选择是否是有效组合,并且我宁愿不必构建解析器来执行此操作.是否有一个快速的C库,可将字符串作为数学表达式求值?我认为我有一种简单的方法可以将“ a< b”转换为“ 5< 6”,我只需要一种评估方法.解决方法:编写简单的算术表达式解析器是学...
我正在使用如下所示的数据文件: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’,但这会删除该行.另外,我读到我可以使用...
这个问题已经在这里有了答案: > “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的文件,其中包含多行.我将这些行之一保存为名为...
我有两个文件.其中一个定义了一组数字-值对,如下所示(文件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中的相应数字替换文...
#!/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")'或者使用...
我试图看看一个字符串是否是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...
我在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}"
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……将完全按照你的要求行事. 现在,如果你的意思...
我已经想出并尝试使用gsed -i命令替换字符串,如下所示:gsed -i 's/sdkUniqueKey=""/sdkUniqueKey="123"/g' AppConstants.txt现在我想对我文件中的另一个字符串执行相同的操作,但正如我的问题所述,我需要先从另一个文件中复制内容然后替换一个字符串,例如:gsed -i 's/sdkPrivateKey=""/sdkPrivateKey="contentsCopiedFromAnotherFile"/g' AppConstants.txt还有一件事,内容(要复制),其中有下一行和空格,我想在复制之前将其删除.它还...