PHP : awk减法给出指数级的数值
当我减去两个值时,我会得到尴尬的结果,错误是我得到指数值2.77555575615629E-17而不是0.在某些情况下,这些情况仅像0.66、0.67、0.33, 我正在使用的代码的原型如下 $_SESSION['x'] = 1; $_SESSION['x'] = $_SESSION['x'] - 0.83; echo ( $_SESSION['x']- 0.17) ; echo ' '; 但是,在将值逆转时,它都可以用0 来 $_SESSION['x'] = 1; $_SESSION['x'] = $_SESSION['x'] - 0.17; echo ( $_SESSION['x']- 0.83) ; echo ' '; 解决方
0 2023-06-01
编程技术问答社区
awk单引号或双引号的使用
为什么awk命令不用简单引用和双引号产生相同的结果? root@vm90:/root# who | awk "{ print $2 }" ... root@vm90:/root# who | awk '{ print $2 }' ... 我想在php shell_exec()函数中使用awk,该功能在整个代码中使用简单引用. 这个... $output = shell_exec("who | awk '{ print $2 }'"); ...有效,但我更喜欢... $output = shell_exec('who | awk "{ print $2 }"'); ...这个,不起作用. 解决方案 来自 因为双引号文本中的某些字符由 shell 处理,所以它们必须在文本中 evem .值得注意的是字符$,`,\和",如果将它们从字面上传递给程序,则必须在双引用文本中进行后斜线. (首先剥夺了领先的后斜线.)
0 2023-05-31
编程技术问答社区
如何用php删除文件中的一行?
我有一个名为$dir的文件和一个名为$line的字符串,我知道该字符串是该文件的完整行,但我不知道其行号,我想从文件中删除它,什么我应该做吗? 可以使用尴尬吗? 解决方案 $contents = file_get_contents($dir); $contents = str_replace($line, '', $contents); file_put_contents($dir, $contents); 其他解决方案 一一读取行,然后将所有匹配行写入另一个文件.然后更换原始文件. 其他解决方案 这只会浏览每一行,如果不是您要删除的内容,它将被推到一个数组中,该数组会被写回文件. 请参阅此 $DELETE = "the_line_you_want_to_delete"; $data = file("./foo.txt"); $out = array(); foreach($data as $line) { if(trim($li
2 2023-05-25
编程技术问答社区
命令 "打印所有以 "开始的行
我正在寻找一个以字符串开头的线的perl命令.例如,如果我想打印以" 1234"开头的所有行,那命令会是什么样? sed?尴尬? grep? 解决方案 perl -ne 'print if /^1234/' 或 sed -ne '/^1234/p' 或 awk '/^1234/' 或 grep '^1234' 或 ruby -ne 'print if /^1234/' 甚至 python -c 'import fileinput;print "\n".join([l for l in fileinput.input() if l.startswith("1234")])' 其他解决方案 perl -ne'print if /^1234/' file ,但大多数人会使用grep. grep ^1234 file 或Windows findstr /r ^1234 file 其他解决方案 完成:
0 2023-05-25
编程技术问答社区
比较行数,并为相同的行数打印相同的值
我有这样的输入: A 118791136 X A 118791136 x A 118791136 X A 118791136 X B 118791136 x B 23456433 X B 23456433 X B 23456433 x . . . 我想将其转换为以下输出: A 118791136 XxXXx B 23456433 XXx . . . 我知道一点perl,但我不知道如何通过行比较行 非常感谢您提前 ,如果我们有 A 118791136 X A 23456433 x B 34222223 X B 56444233 X 如何有这样的输出: A 118791136,23456433 X,x B 34222223,56444233 X,X ... ... 解决方案 这件作品做到了: $ awk '{a[$1,$2]=a[$1,$2]$3
2 2023-05-25
编程技术问答社区
如果一个句子以一个特定的词开头,如果该句子中确实存在一个词,如何改变它?
因此,基本上是在.txt文件中搜索行,如果它以诸如" this"之类的单词开头,则如何在该句子中在该句子中交换一个目标单词?开放使用bash,perl或尴尬. 解决方案 perl -pi -e "s/^This\b/That/" myfile 或,如果您想在行中更改不同的单词, perl -pi -e "s/\btargeted\b/swap/ if /^This\b/" myfile
0 2023-05-25
编程技术问答社区
如何用awk或其他控制台工具来计算模式之间的行数?
我有这样的输入: *** dev1 result1 result2 other3 *** dev2 result1 result2 我想在***之后对线进行计数,然后以这样的方式显示它们: *** dev1 3 *** dev2 2 这是有可能使用尴尬或其他bash工具的? 解决方案 例如: awk '/\*\*\*/ {if (count) print count; print; count=0; next} {count++} END {print count}' file 对于您的样本输入,它返回: *** dev1 3 *** dev2 2 要匹配连续的块(即,两行与***一个接一个),我们可以检查NR(线数),而不是count: awk '/\*\*\*/ {if (NR>1)print count; print; count=0; next} {count++} END {print count}' file 其他解决
0 2023-05-25
编程技术问答社区
我应该用sed、awk、perl来改变跨越多行的文本,只选择需要的信息吗?
我正在研究一个课程项目,我们将一个装满线的文件描述了类似于下面的课程 CSC 1010-计算机和应用程序 计算机和应用.先决条件:高中代数II.计算机的历史记录,>硬件组件,操作系统,应用程序软件,数据通信. 3.000个学时 并将其变成 CSC1010,计算机和应用,3 我使用了: sed -n 's/^CSC /CSC/p' courses.txt > practice.txt 输出: CSC1010-计算机和应用程序 CSC1310 -Intro Comp编程非MAJ CSC2010-计算机科学介绍 CSC2310-计算机编程的prin CSC2320-网站开发基金 CSC2510- Comp Sci 的理论基础 CSC3010-计算历史 CSC3210-计算机组织和编程 CSC3320-系统级编程 CSC3330 -C ++编程 CSC3410-数据结构-CTW CSC4110-嵌入式系统 CSC4120-机器人
0 2023-05-25
编程技术问答社区
sed、awk、perl或lex:通过前缀+regex查找字符串,忽略其他输入内容
我需要在一堆文件中找到具有特定前缀的字符串,然后是regexp,但忽略了输入的其余部分(包括前缀之前的行内容,以及在匹配regexp的末尾). 最佳工具是什么? grep找到完整的行; sed通常仅用于编辑和选择; awk? perl? 我也考虑过lex,但是我真的是在编译器编译器之后?! 编辑:输入是数千个HTML文件,前缀 +正则表达式为https://([-.0-9A-Za-z]+\.[A-Za-z]{2,})(我想要$1),其余的输入忽略了. 解决方案 如果您在单行上的模式中不会超过一个模式,我可能会使用sed: sed -n -e 's%.*https://\([-.0-9A-Za-z]\{1,\}\.[A-Za-z]\{2,\}\).*%\1%p' 给定数据文件: Nothing here Before https://example.com after https://example.com and after Before you
0 2023-05-25
编程技术问答社区
如何使用AWK来解决这个2表数据连接的问题?
我有2个数据表,如图所示(它们是2 x选项卡 - 删除文件). 我正在尝试使用表1的相应国家/地区填充Table-2 Country专栏.需要从表2的firstName字段中的信息中"加入". 鉴于表2中数据列中数据的复杂性,这里的最佳方法是什么?其他MAC工具会比Awk更好地使用,例如Excel公式,Perl,Filemaker等? table1(输入): city_ascii country iso2 Mavinga Angola AO Menongue Angola AO Mucusso Angola AO Guines Cuba CU Havana Cuba CU Holguin Cuba CU Las Tunas Cuba CU Manzanillo Cuba CU Matanzas Cuba CU Moron Cuba CU Santa Clara Cuba CU Varade
0 2023-05-25
编程技术问答社区
如何用sed、awk或其他方式编辑下面的行
如何在SED,尴尬或其他任何内容中编辑以下行: root@laptop002:/tmp# cat /tmp/log 2016-03-01 06:08:26 {"id":"778640","cuid":"1","msid":"199033","lid":"582","Started":"1","qid":"9401"} batch is running 使它看起来如下: 2016-03-01 06:08:26 "msid":"199033" batch is running 或 2016-03-01 06:08:26 msid is 199033 batch is running 或 2016-03-01 06:08:26 msid=199033 batch is running 解决方案 $ awk -F'[{,}]' '{print $1, $4, $NF}' file 2016-03-01 06
0 2023-05-25
编程技术问答社区
在perl或bash中从colum中进行解析
我正在使用的文件看起来像 NAMES n0 n1 n2 n3 n4 n5 n6 n7 REGION chr 1 100000 404 AAAAAAGA 992 TTTTTTTA 1146 CCCCGGCC 1727 CCCCCACC 1778 GCCCCCCC 需要根据列中的数字来拆分文件 - 每1000个单位创建一个新文件,以便输出将为 file1 NAMES n0 n1 n2 n3 n4 n5 n6 n7 REGION chr 404 992 404 AAAAAAGA 992 TTTTTTTA file2 NAMES n0 n1 n2 n3 n4 n5 n6 n7 REGION chr 1146 1778 1146 CCCCGGCC 1727 CCCCCACC 1778 GCCCCCCC 因此,每1000个单位(第一个是1到1000)将第一个C
0 2023-05-25
编程技术问答社区
一个perl脚本,用于列出所有的例外情况及其发生的次数
(我正在为此问题,因为awk中的解决方案并不总是出于某些原因而运行良好). 这是目标的摘要:我有一个文件output.txt,它包含Unexpected exception :,其次是不同的例外...例如,它看起来像 ... Unexpected exception : exception1 ... Unexpected exception : exception2 ... 现在,我想编写一个总结output.txt的Shell脚本summary,尤其是列出了提出的例外及其发生次数.它应该喜欢: exception1 : 9 exception2 : 15 ... 例外的顺序并不重要(嗯,如果用事件的数量进行排序,那就更好了)... a awk解决方案是: awk -F ' : ' '$1=="Unexpected exception"{a[$2]++} END{for (i in a) print " ", i,a[i]}' $1 但是我不知
0 2023-05-25
编程技术问答社区
比较文件,只写匹配的模式,perl还是awk?
我需要比较两个文件.在第一个文件中,我有一些ID对,在第二个文件中,我的ID列表以两种样式(每列)编写.他们看起来像这样: 文件1 IDnew_1 IDnew_2 IDnew_3 IDnew_4 IDnew_5 IDnew_6 IDnew_7 IDnew_8 文件2 IDnew_1 IDold_1 IDnew_2 IDold_2 IDnew_7 IDold_7 IDnew_8 IDold_8 我想获得这样的输出: IDold_1 IDold_2 IDold_7 IDold_8 概括地我需要"翻译"文件两个中的旧样式ID中的文件1. 我在perl中尝试了一些东西,但是我无法使用文件2中的两个列. 我的perl代码看起来像这样: $file_GS = "file1.txt"; $file_orto = "file2.txt"; open (HAN, "
0 2023-05-25
编程技术问答社区
从CSV数据值中删除回车符
我使用负载数据填充语句将来自管道划分的CSV的数据导入MySQL.我正在使用" \ r \ n'终止行.我的问题是,每行中的某些数据中的某些数据在其中具有'\ r \ n',从而导致负载错误.我有类似的文件,这些文件仅在数据中使用'\ n'来指示线路破解,这不会引起任何问题. 示例好的CSV School|City|State|Country\r Harvard University|Cambridge|MA|USA\r Princeton University|Princeton|New Jersey |USA\r 示例不好CSV School|City|State|Country\r Harvard University|Cambridge|MA|USA\r Princeton University|Princeton|New\r Jersey\r |USA\r 是否有一种方法可以使用sed,awk或perl预处理CSV,以清理列值中的额外运输返回?
0 2023-05-25
编程技术问答社区
如何在csv引号字段中用空白代替换行符?
有一个大的CSV文件,其中包含一些线条提要.我需要运行一个shell脚本,sed,awk,perl很好,只用一个空间替换引号中的行供稿.行的结尾必须保留,我不知道列的数量或哪些字段可能具有这些嵌入式线馈送. 对文件的进一步检查显示了CAT -V test_lf.csv 的结果 "NORTH ?M-^@?OLMSTED" "PORT?M-^@?ST?M-^@?LUCIE" 在CSV文件中,在Excel中显示了一个线路断开?m-^@?是. 我想使用TR代替空间.我该怎么做?那是什么序列? 我现在发现文件的一小部分看起来像字符和十六进制中的以下内容. 13:20:59 [woo:~/Development/scripts] > tail -n 8 test_lf.csv | head -n 1 | od -x 0000000 3431 3136 3439 3039 2c39 542c 4c45 3543 000
4 2023-05-25
编程技术问答社区
比较两个文本文件打印结果的新标题
好吧,我会重新启动此 我有2个文件-file1.txt,file2.txt file1是基本模板 file2具有状态结果 file1.txt N1,N2,N3,N4,N5,N6 XX,ZZ,XC,EE,RR,BB XC,CF,FG,RG,GH,GH file2.txt DF,GH,MH,FR,FG,GH,NA XX,ZZ,XC,EE,RR,BB,OK 下面的命令将两个文件中的第1列进行比较,如果它匹配,则它将从file2中的第7个单元格中检索值,并在file1.txt中附加为最后一列,并带有新标头. 如果找不到NA已更新. 使用的命令: awk -F ' FNR==NR { a[$1]=$7; next } FNR==1 { print $0; len=length($0); next } { printf $0 cont=(($1 in a) ? ","a[$1] : ",NA") f
2 2023-05-25
编程技术问答社区
将awk脚本翻译成perl
我正在尝试将此代码转换为perl. gawk '/^>c/ {OUT=substr($0,2) ".fa";print " ">OUT}; OUT{print >OUT}' your_input 有人可以帮我吗? 解决方案 perl有一个实用程序可以为您执行此操作,称为 a2pp .如果您的脚本被调用script.awk,则您将运行: $ a2p script.awk 产生: #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; # this emulates #! processing on NIH machines. # (remove #! line above if indigestible) eval '$'.$1.'$2;' while $ARGV[0] =~ /
0 2023-05-25
编程技术问答社区
使用脚本为xml中的每个标签添加一个递增的值属性
我想在XML中的每个标签中添加一个属性,该标签正在使用AWK,SED,PERL或PLAIN SHELL CMD 进行增量 例如: 我期望以下输出 如果可能的话,我不在查看任何依赖项(树枝,libxml),纯字符串操纵. 解决方案 通常,您应该使用适当的解析器来处理XML.但是在awk中: awk 'match($0, /]+/) { \ $0 = substr($0, 1, RSTART+RLENGTH-1) " order=\"" ++i "\"" \
0 2023-05-25
编程技术问答社区