Articles of string

Perl正则expression式\ d +和运算符在字母数字string中只显示一位数字

我遇到了以下问题:如果使用第一个示例中的代码,variables$1只包含每个string的最后一位数字。 但是,如果我使用第三个例子,其中每个“string”只是一个数字, $1variables显示所有数字的完整数字。 对我来说, \d+运算符在字母数字上下文和数字上下文中的工作方式不同。 这是我的问题:你能重现吗? 这是行为的目的? 如何使用perl中的正则expression式操作在字母数字上下文中捕获完整数字? 如果\d操作符的性质本质上是懒惰的,我可以使它更加贪婪(如果这是真的,我会怎么做?)? 例1: perl -e 'for ($i = 199; $i < 201; $i ++) { print "words".$i."words\n"}' | perl -ne 'if (/\A\w+(\d+)\w+/) {$num = $1; print $num,"\n";}' 输出: 9 0 例2: perl -e 'for ($i = 199; $i < 201; $i ++) { print "words".$i."words\n"}' | perl -ne […]

如何检查C中的缓冲区?

我有一个大小为1500的缓冲区。在该缓冲区中,我需要检查15个字节是否全部为零(从100到115)。 我们如何做到这一点(如果我们不使用任何循环)? 数据的types是“无符号字符”,实际上它是一个无符号字符数组。 平台:Linux,C,gcc编译器 将使用memcmp()是否正确? 我从智能卡读取一些数据并将其存储在缓冲区中。 现在我需要检查最后15个字节是否是连续的零。 我在这里提到了memcmp() ,因为我需要一个有效的方法; 智能卡读取已经花费了一些时间。 或者按比例进行比较是正确的。 请build议。

LINUX中无法将C ++中的STRING转换为INT

我已经尝试了很多方法,详情如下: http : //www.cplusplus.com/forum/general/13135/ 如果我在Windows上运行该文件,大多数工作,但是当我尝试在Linux上这样做,他们都没有工作。 例如,我试着做: string str = "123"; int sp; istringstream ( str ) >> sp; 但它给了我错误:“使用不完整的types”struct std :: istringstream'/usr/include/c++/4.4/iosfwd:67:错误:'struct std :: istringstream'的声明 其他select是“atoi”,但它说“atoi没有在这个范围内定义”。 任何想法为什么发生?

在ksh中获取string的最后n个字符

假设我有一个持有一些string值的variablesname 要获取最后n个字符,在bash中我们写: $ echo "${name: -n}" 在ksh有什么等价的方法,我已经看过sed和awk方法,但是我正在寻找的是一种类似于bashpipe道或pipe道解决scheme来提取最后的字符 到目前为止,这些都是错误和努力: AB12 $ name="123456" AB12 $ echo ${name:(-3)} ksh: ${name:(-3)}: bad substitution AB12 $ echo${name:0:-3} ksh: echo${name:0:-3}: bad substitution AB12 $ print ${name%?} 12345 AB12 $ echo "some string" | tail -c -1 tail: cannot open input AB12 $ echo -n "my string discard"| tail -c -1 tail: […]

在BASH中的string结尾之前插入一个4个字符的字符

有没有办法在string结尾之前插入冒号4个字符? 例如,我有0x2aab3f439000,我需要0x2aab3f43:9000 谢谢

从文件名提取版本号

我有一个像这样的文件夹中的文件: installer-x86_64-XXX.XX-diagnostic.run 其中XXX.XX是一个版本号,我只需要版本号。 如何在Linux中做到这一点? 我有这个代码: #!/bin/bash current_ver=$(find /mnt/builds/current -name '*.run'|awk -F/ '{print $NF}') 所以这给了我正确的文件名(减去我不想要的位置)。 但是,如何才能将XXX.XX版本号转换为$version等variables

Bizzare System.out.println()在Java程序中

String messageFile = … // Assume messageFile SHOULD have the string "MESSAGE" System.out.println("The messageFile is: " + messageFile + "!!"); 通常情况下,人们会期望上面的命令输出: The messageFile is: MESSAGE!!!! 不过,我正在接受这个: !!e messageFile is: MESSAGE 看看上面的说法,“!!” 点似乎围绕着消息。 我的理论是: String messageFile = … 包含比我假设的“MESSAGE”更多的字符。 因此,它将下一个input(在本例中为“!!”)包装到System.out.println()消息的前面。 这是什么性格造成的? 额外信息: 顺便说一句,messageFile通过传递一个命令行参数到一个Java类,myClassA初始化。 myClassA的构造函数使用super()将messageFileparameter passing给myClassB。 myClassB将messageFile传递给函数()。

快速的stringsearch在一个非常大的文件

在包含string的文件中search行的最快方法是什么? 我有一个文件包含要search的string。 这个小文件(smallF)包含大约50000行,看起来像 stringToSearch1 stringToSearch2 stringToSearch3 我必须在一个更大的文件(大约一亿行)中search所有这些string。 如果此较大文件中的任何一行包含searchstring,则会打印该行。 到目前为止,最好的方法是 grep -F -f smallF largeF 但是这不是很快。 只需要100个searchstring,大约需要4分钟。 对于超过50,000个searchstring,它将花费很多时间。 有没有更有效的方法?

bash空string/命令

我在bash中发现了一些奇怪的东西,我不明白它是如何工作的。 [test ~]$ a="" [test ~]$ $a && echo 1 1 [test ~]$ $a [test ~]$ echo $? 0 为什么$ a(它是空的)返回0? 是不是变成了空的命令? 如果在&&之前添加引号或写入空string,将会返回错误。 空命令返回0。 [test ~]$ "$a" && echo 1 -bash: : command not found [test ~]$ "" && echo 1 -bash: : command not found [test ~]$ “ && echo 1 1 那么,当我input$ a时发生了什么?

用bash shell脚本提取2个string之间的string

我已经看到类似的问题,但没有一个解决scheme似乎在这种情况下工作。 我有一个文本文件,看起来像这样 START-OF-FILE RUNDATE=20140910 FIRMNAME=dl FILETYPE=pc REPLYFILENAME=TEST DERIVED=yes PROGRAMFLAG=oneshot SECID=ISIN SECMASTER=yes PROGRAMNAME=getdata START-OF-FIELDS ISSUER START-OF-DATA US345370CN85|0|4|FORD MOTOR COMPANY|FORD MOTOR COMPANY| | | US31679BAC46|0|4|FIFTH STREET FINANCE COR|FIFTH STREET FINANCE COR| | | END-OF-DATA END-OF-FILE 我正在尝试编写一个bash shell脚本来仅提取“开始数据”和“数据结束”之间的文本,但不包括这两个文本。 所以我正在寻找的输出将看起来像这样 US345370CN85|0|4|FORD MOTOR COMPANY|FORD MOTOR COMPANY| | | US31679BAC46|0|4|FIFTH STREET FINANCE COR|FIFTH STREET FINANCE COR| | | 我迄今为止写的代码看起来像这样 while read […]