Questions tagged «perl»

Perl是一种高级通用,解释性动态编程语言。它最初是由拉里·沃尔(Larry Wall)开发的,是一种通用的Unix脚本语言,旨在简化报表的处理。在开放源代码社区的支持下,经过一段时间,它已经发展并成熟,可用于图形编程,系统管理,网络编程,财务。 ,生物信息学和其他工程应用。

7
如何修复在错误的地方折断的线?
我的文本文件如下所示: This is one sentence that is broken. However this is a good one. And this one is somehow, broken into many. 我想删除任何行的尾随换行符,其后是以小写字母开头的行。 所以这应该是: This is one sentence that is broken. However this is a good one. And this one is somehow, broken into many. 我怎样才能做到这一点? 编辑:这里有一些非常好的答案,但是我选择接受第一个可行且最早的答案。非常感谢大家!

3
正则表达式和Sed / Perl:匹配在ISN之前没有另一个单词的单词
我想使用sed或perl替换前面没有特定单词的单词的所有出现。 例如,我有一个文本文件,其中包含电影情节,并且我希望将所有出现的角色姓氏替换为其名字,但前提是角色的姓氏不紧跟其姓氏。 示例文本可能如下所示: John Smith and Jane Johnson talk about Smith's car. 我希望它看起来像这样: John Smith and Jane Johnson talk about John's car. 如果我只是这样做sed 's/Smith/John/' file,那么我将有: John John and Jane Johnson talk about John's car. 在姓氏之前的名字将始终相同。我不必处理John Smith和Frank Smith。我只需要一种匹配的方法Smith,而没有John之前的方法。

1
用输入执行Nohup命令
在UNIX中,我有一个要使用nohup运行的进程。但是,此过程有时会在提示下等待我输入yes或no继续。到目前为止,在UNIX中,我一直在执行以下操作: nohup myprocess <<EOF y EOF 因此,我使用nohup启动进程“ myprocess”,并使用“ y”将其管道传输到文件中,然后关闭文件。上面的行实际上是三个单独的命令-即,我在UNIX的第一行中按Enter,然后得到提示,我在其中输入'y',然后按Enter以最后键入'EOF',然后再次按回车键。因此,这很完美,但是我的问题在下面。 我现在想在Perl中执行此命令,但是由于三行以上,因此我不确定如何执行此命令。我不知道以下方法是否有效: my $startprocess = `nohup myprocess <<EOF & y EOF `
11 process  perl  nohup 


3
可以将tr命令链接起来以避免流水线中有多个tr进程吗?
我有一堆txt文件,我想将它们输出为小写字母,只有字母和每行一个字,我可以tr在管道中使用多个命令来完成此操作,如下所示: tr -d '[:punct:]' <doyle_sherlock_holmes.txt | tr '[:upper:]' '[:lower:]' | tr ' ' '\n' 可以一次扫描吗?我可以写一个C程序要做到这一点,但我觉得有一种方法使用去做tr,sed,awk或perl。
11 sed  awk  perl  tr 


2
替换perl和sed中不可打印的字符
我需要用文件中的空格替换一些不可打印的字符。 具体来说,所有字符0x00最多到0x1F,但0x09(TAB),0x0A(新行),0x0D(CR)除外 到目前为止,我只需要替换0x00字符即可。因为我以前的操作系统是AIX(没有GNU命令),所以我不能使用sed(虽然可以,但是有一些限制)。因此,我找到了使用的下perl一条命令,该命令按预期工作: perl -p -e 's/\x0/ /g' $FILE_IN > $FILE_OUT 现在我正在Linux上工作,因此我希望能够使用sed命令。 我的问题: 此命令是否适合替换那些字符?我尝试过,而且似乎可行,但是我想确保: perl -p -e 's/[\x00-\x08\x0B\x0C\x0E-\x1F]/ /g' $FILE_IN > $FILE_OUT 我以为perl -p工作sed。那么,为什么上一个命令起作用(至少不会失败),而下一个命令却不起作用? sed -e 's/[\x00-\x08\x0B\x0C\x0E-\x1F]/ /g' $FILE_IN > $FILE_OUT 它告诉我: sed:-e表达式#1,字符34:无效的归类字符
11 sed  perl 

2
强制Bash使用Perl RegEx Engine
您可能已经知道,Bash RegEx引擎不支持现代RegEx引擎支持的许多功能(向后引用,环视断言等)。以下是我刚刚创建的一个简单的Bash脚本,试图解释我的最终目标是: #!/bin/bash # Make sure exactly two arguments are passed. if [ $# -lt 2 ] then echo "Usage: match [string] [pattern]" return fi variable=${1} pattern=${2} if [[ ${variable} =~ ${pattern} ]] then echo "true" else echo "false" fi 因此,例如,类似以下命令的内容将返回false: . match.sh "catfish" "(?=catfish)fish" 而在Perl或JavaScript正则表达式测试器中使用时,完全相同的表达式将找到匹配项。 反向引用(例如(expr1)(expr2)[] \ 1 \ …

6
使用Perl计算文件中科学数字的数量
如何计算文件中科学数字的数量?该文件还有几行标题,需要跳过。 文件内容的一部分在下面。 FileHeaderLine1 FileHeaderLine2 FileHeaderLine3 FileHeaderLine4 2.91999996E-001 2.97030300E-001 3.02060604E-001 3.07090908E-001 3.12121212E-001 3.17151517E-001 3.22181821E-001 3.27212125E-001 3.32242429E-001 3.37272733E-001 3.42303038E-001 3.47333342E-001 3.52363646E-001 3.57393950E-001 3.62424254E-001 3.67454559E-001 3.72484863E-001 3.77515137E-001 3.82545441E-001 3.87575746E-001 3.92606050E-001 3.97636354E-001 4.02666658E-001 4.07696962E-001 4.12727267E-001 4.17757571E-001 4.22787875E-001 4.27818179E-001 4.32848483E-001 4.37878788E-001 4.42909092E-001 4.47939396E-001 4.52969700E-001 那么,如何跳过上面示例的前四行并计算文件中科学数字的数量?
10 perl 

5
awk / sed / perl一线+如何仅打印json文件中的属性行
如何仅打印json文件中的属性行 json文件的示例 { "href" : "http://master02:8080/api/v1/clusters/HDP/configurations?type=kafka-env&tag=version1527250007610", "items" : [ { "href" : "http://master02:8080/api/v1/clusters/HDP/configurations?type=kafka-env&tag=version1527250007610", "tag" : "version1527250007610", "type" : "kafka-env", "version" : 8, "Config" : { "cluster_name" : "HDP", "stack_id" : "HDP-2.6" }, "properties" : { "content" : "\n#!/bin/bash\n\n# Set KAFKA specific environment variables here.\n\n# The java implementation to use.\nexport JAVA_HOME={{java64_home}}\nexport …
10 awk  sed  perl  json  jq 

6
如何仅替换文件中第N个出现的模式?
如何使用sed命令替换文件中字符串的第三次出现。 例: 仅更改的第三次出现is到us的文件中。 我的输入文件包含: hai this is linux. hai this is unix. hai this is mac. hai this is unchanged. 我期望输出是: hai this is linux. hai thus is unix. hai this is mac. hai this is unchanged.

2
如何对文件进行就地修改?
对文件的“原位”修改(例如,通过sed -i或perl -i表示)是什么? 我的问题是有关此就地修改是如何完成的。复制的文件是否在副本中完成修改,然后替换原始文件?还是以某种方式修改了原始文件?
10 files  sed  perl 

2
指示用户程序的资源友好方式未挂起
我在* nix系统上有一个Perl脚本,有一点正在处理50,000多行文本。这需要一些时间。我正在尝试找到一种资源友好的方式,以使用户知道程序在处理所有这些文本时未挂起。 目前,由于正在处理文本,因此我正在实时打印输出。我正在刷新输出缓冲区,然后使用一行打印输出\r。这似乎是对资源的不必要使用,因为它花费的时间几乎是什么都不打印的两倍,但是正如我已经说过的,当什么也不打印时,程序似乎挂了。 所以我的问题是:有没有一种标准或简单的方法可以让用户在执行长时间运行的任务时知道程序确实正在运行?
10 perl  output 



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.