获取INSERT'的行计数;根据mysqldump中的表名-awk、sed、grep

需要bash大师 要比较多个日期的mysqldumps,我需要sql GROUP BY、ORDER BY功能。。。但是在命令行上 使用grep/sed/awk,我需要查找所有INSERT语句,然后导出每个tablename的行计数。我也希望每个表名有一个字节计数 典型的线条如下所示: INSERT INTO `admin_rule` ... 匹配插入,然后匹配``中的表名,按唯一表名计数这个awk小片段怎么样: BEGIN { FS="`" } /^INSERT/ { count[$2]+

Sed 交换数字

我想用前一个数字交换一个数字: 例如123456至214365 在bash环境中如何使用sed/awk实现这一点?在您对回答您的问题的评论之后,您似乎想更具体地说明您交换了哪些数字 echo 123456 | sed 's/\([0-9]\)\([0-9]\)/\2\1/g' 我将使用awk交换第二列中的所有数字对: bash-3.2$ gawk -V | sed -n 1p GNU Awk 4.0.0 $ echo 254789123456,5306153059630141,6390270

Sed 使用set使用';作为图案分隔符

我只是不了解sed中的模式匹配,更糟糕的是,这里有引号作为分隔符 我有: 并获得: 'PhaseRayA: ' 'sca/sca_out/sc_ray_a.s' 'PhaseRayO: ' 'sca/sca_out/sc_ray_o.s' 作为输出。A现在,我想提取: sca/sca_out/sc_ray_a sca/sca_out/sc_ray_o.s.s 所以我的模式应该是“*.s”,引号是模式的一部分,但不是想要的结果的一部分 有什么想法吗?

Sed实用程序的模式空间和保持空间的初始化值是null还是空字符串?

从sed的文档中: sed维护两个数据缓冲区:活动模式空间和 辅助等待空间。两者最初都是空的 我最初认为模式空间和保持空间的值为null(nothing)。但是从下面的示例来看,它们的初始值似乎是一个换行符(\n) 我的理解正确吗? 谢谢。我认为答案是,p命令与默认的打印操作一样,实际上是在空白图案空间的末尾添加一个换行符。这是基于GNUsed文档(顺便说一下,就在您引用的那一位下面): sed通过对每一行输入执行以下循环进行操作:首先,sed从输入流中读取一行,删除任何尾随换行符,并将其放置在

使用awk-sed进行文件列操作

我有两个文件,我想合并如下。 文件1: 文件2: AAA 9876 67 89 01 BBB 4567 23 45 23 需要最终文件 AAA 1234 9876 67 89 01 BBB 2341 4567 23 45 23 如何在awk或sed或两者中实现这一点?您可以尝试这一点(也许这是一个大的解决方案,但它可以工作): a、 awk: 您可以尝试以下方法(也许这是一个大的解决方案,但它很有效): a、 awk: transform.awk {key=($1 ~/[A-Z]+/)}

如何使用sed查找和替换除第一个匹配项之外的所有匹配项?

我正在使用sed查找和替换文本,例如: set -i 's/a/b/g' ./file.txt 这将用文件中的b替换a的每个实例。我需要添加一个异常,sed将a的每个实例替换为b,但文件中的第一个实例除外,例如: There lived a bird who liked to eat fish. One day he fly to a tree. 这就变成了: There lived a bird who liked to ebt fish. One dby he fly to b tree

带sed的翻转数组索引

我有一些java代码声明了我想要翻转的2d数组。 内容如下: zData[0][0] = 198; zData[0][1] = 198; zData[0][2] = 198; ... 我想有一个 zData[0][0] = 198; zData[1][0] = 198; zData[2][0] = 198; 所以我试着用sed来做: sed -r 's#zData[([0-9]*)][([0-9]*)]#zData[\2][\1]#g' DataSample1.java 但不幸的是

Sed 经济及社会发展局局长:;重复运算符操作数无效";使用捕获组

标准正则表达式 我有一个(部分)JSON字符串,如下所示: "99887":{"foo":"99887","bar":"paul"},"88776":{"foo":"88776"... 我需要去掉每个{之前的数字字符串以生成以下内容: {"foo":"99887","bar":"paul"},{"foo":"88776"... 对于普通正则表达式,我将使用模式(“\d{5}\:)(\{),并保留$2 sed 我很难将其转换为sed命令: sed 's/\("\d{5}":\)\(\{\)/\

使用sed替换现有线路中的阵列

我想换新的 /fdasatavol/ankit 到 有人能帮我吗?要写入新文件(不修改文件1): 或在原始文件中替换: sed -i 's/fdasatavol/fdasatavol_sata/g' file1 这将用fdasatavol\u sata替换每次出现的fdasatavol: sed 's/fdasatavol/&_sata/g' 如果您的输入出现了不在/fdasatavol/ankit中的fdasatavol,并且您不想替换它们,则使用: sed 's@/fdasat

如何使用sed插入包含斜杠的字符串?

我有一个VisualStudio项目,是在本地开发的。代码文件必须部署到远程服务器。唯一的问题是它们包含的URL是硬编码的 该项目包含URL,例如?page=one。要使链接在服务器上有效,它必须是/page/one 我已经决定在部署之前用sed替换代码文件中的所有url,但我仍然坚持使用斜杠 我知道这不是一个很好的解决方案,但它很简单,可以节省我很多时间。我必须替换的字符串总数少于10个。必须检查的文件总数约为30个 下面是描述我的情况的示例: 我正在使用的命令: sed -f replace

Sed 如何根据找到的图案获得特定线条

我试图从一个非常大的文件中收集文件名,这取决于是否找到了特定的用户,在本例中是windowsdom\nasarchive 我尝试运行了sed-nr/-{3,}/h;/Path\s*:/h;/windowsdom\\nasarchive\s+Allow\s+FullControl/{x;G;p}“logfilename,但它没有带来任何结果 ----------------------- Path: U:\Credit share\BI-WEEKLY CREDIT NOTES\2010\Credi

使用sed在字符前或新行插入文本?

我试图使用脚本在出现新文本时在latex文件中插入\cbstart{}和\cbend{}标记 end=$(( $start + $diff )) sed -i "" "${start}s/^/\\\\cbstart{} /" "$OUT" sed -i "" "${end}s/$/ \\\\cbend{}/" "$OUT" 但是,如果将\cbend{}标记放在末尾包含注释的新行上,则: \cbstart{} Example text. %Example commment \cbend{} 注

Sed 编辑一行

我正在尝试使用sed修改一行,如下所示 CustomLog /home/logs/httpd/access_log common 到 我尝试了sed替换为文本,但没有成功。我正在尝试对大约800个文件执行此操作,因此需要一个命令来执行此操作。这似乎有效: sed 's/\([^ ]*\) \([^ ]*\) \([^ ]*\)/\1 "|\/usr\/sbin\/rotatelogs \2_`date +%m_%d_%Y` 86400" combined/' 例如: > echo "C

使用sed交换列X和X+;1在分隔文件中内联

我有一个有多行的文件,对于文件末尾的第2行,我想交换字段8和9。该文件是逗号分隔的,我希望进行内联交换,以便使用*通配符在一批文件上运行它。如果这可以用awk类似地完成,那么这对我也适用 例如: header1,header2,header3,...,header8,header9,...,headerN field1.1,...,field1.9,field1.8,...,field1.N field2.1,...,field2.9,field2.8,...,field2.N field3.1

Sed 将一个文本行更改为多个文本行

我试图将这一行拆分为多行,每行包含一个单独的句子: This is a first sentence. This is a second sentence. Look at this: a third sentence! Where does this ends? I have no Idea, who knows… 我们必须尽可能使用最短的命令 我试过这个: sed 's/[.?!]/&\n/g' 但它会在每一个新句子后面加上一个空格: This is a first senten

Sed Bash使用下划线重命名文件

我的文件名为CULT_2009_BARRIERS_EXP_Linear.dbf 并希望将其重命名为 CULT_barries_EXP_Linear.dbf。 这些文件有一个日期前缀,它总是不同的,显示它被捕获的时间。 我试图用正则表达式替换它们。我想测试字符串是否包含数字,然后重命名。我用过 if [[ $file =~ [0-9] ]]; then rename -v "s/[0-9]//g" * && rename -v s/[_]_/_/ *; 部分有效。

如何使用sed删除具有一位数而不是双位数的行

我有这条线 sed -i '/Total number 1/d' /tmp/test.txt 这将删除行 Total number 1 但它也删除了, Total number 11 Total number 12 Total number 13 如何将其设置为仅删除单个数字?在末尾添加一个美元符号sed-I'/Total number 1$/d'/tmp/test.txt 此外,如果要删除任何单个数字,请替换1:sed-i'/Total number[0-9]$/d'/tmp/tes

Sed 更改ASCII文件中精确滚动的精确单词

我需要更改文件中的字符串,该字符串在每一行上重复,但我只需要更改几行(不是所有行)。 例如,/etc/fstab文件: /dev/mapper/rhel-root / xfs defaults 0 0 /dev/mapper/rhel-boot /boot ext4 defaults 1 2 /dev/mapper/rhel-hom

sed:-e表达式#1,char 62:未知命令:`';

我想补充一点 - paths: - /var/log/consumer.log document_type: consumer input_type: log 在浏览者之后:在我的文件中。我正在使用命令: sed -i '/prospectors:/a\ \ \ \ \- \ \ \ \ \ \ paths:\ \ \ \ \ \ \ \- \/var\/log\/consumer.log \ \ \ \ \ \ document_type: consumer \ \ \

sed匹配第一个单词替换整行

我知道这应该是直截了当的,但我被卡住了,对不起 我有两个文件都包含相同的参数,但值不同。我试图一次读取一行文件,获取参数名,在第二个文件中使用它进行匹配,并用文件1中的那行替换整行 e、 g.rw_2.core.fvbCore.Param.isEnable 1(FVB_参数) 变成 rw_2.core.fvbCore.Param.isEnable true(FVB_布尔值) 这些线的长度并不总是相同的,但我总是想替换整条线 我的代码如下,但它没有进行替换,我也不知道为什么不能 while rea

解释sed中的模式s/\(b\?\)-/x\u\1/g

sed的内容如下: a-b- 下面是sed语法 s/\(b\?\)-/x\u\1/g 第三个是输出 axxB 我想知道它如何匹配。我听不懂“b\?”。这是什么意思?“\?”是否只是指“?”s/regex/replacement/g是您命令的基本结构,您可以在此处阅读: mansed | sed-n'/^\s\{7\}s\/,/exp.$/p' 由于sed读取一行一行,因此有一个选项g,您可以将它附加到s//,以匹配一行中出现的每个regex,而不仅仅是第一个。这就是为什么您有: s/rege

SED{命令失败

在用于Windows的MKS SED上,此 TYPE Q:\temp\curtainssetspread.M3U | SED -E "/z/{s_a_b_}" 失败于 sed: garbage after command 为什么? 此用法与以下文档完全一致: a,b{ groups all commands until the next matching }, so that sed executes the entire group only if the { command is

这个sed命令是如何工作的?。。。。。。sed-E';s/(^-])-([^-]$)/\1xx\2/g';

我发现这个命令很难理解 我甚至找不到man sed下的-E选项,但该命令仍然有效。 替换没有意义,因为它在流的开始处查看,然后立即显示为管道 任何解释都将不胜感激。不确定您使用的是sed的哪个实现 看看gnu实现 参考: 不确定您正在使用的是sed的哪个实现 看看gnu实现 参考: 只要它不是三个或更多破折号序列的一部分,它就用xx替换--。|不是管道,它是另一种选择(^-])表示“行的开头,或者不是-”的字符,([^-])表示“不是-的字符,或者是行的结尾”。然后,这些组捕获的任何内容都会包含

替换sed中特定列中的模式

我有一个选项卡文件,有两列,如下所示 BB_12 100_AA BB_13 101_AB BB_14 102_AD BB_15 103_AC 我希望删除第二列中的数字(将数字替换为零)。为此,我尝试了以下几种方法,但没有成功 sed 's/\d+\_//g' infile sed 's/(\d+\_)//g' infile 但这些调整都不起作用。看起来它没有在第二列中搜索。如何修改这个?预期产量为 BB_12 AA BB_13 AB BB_14 AD BB_15 AC

Sed 如何替换定长字母数字字符?

我试图用sed替换固定长度的字母数字后面的字符串 testing-1xs-a-2x-782b1x9.abc.txt testing-12a-b-2y-486eee2.bcd.txt testing-1a-c-2z-b62cx7d.cde.txt 我尝试了这个命令-sed's/[a-zA-Z0-9]{7}.//g'file 预期产出: testing-1xs-a-2x testing-12a-b-2y testing-1a-c-2z 你能试试下面的吗 awk --re-interval '{s

如何使用SED删除两个模式之间的文本

我要删除TBLProperty和之间的所有文本);在包含以下内容的文本文件中: create table1(<column list> ) TBLPROPERTIES (text1=001 ); create table2(<column list> ) TBLPROPERTIES (text2=002 ); create table3(<column list> ) TBLPROPERTIES (text3=003 ); ..... .... .. ....

Sed删除由包含关键字的行指示的MAC地址

我正在用包含特定字符的行混淆文件中的MAC地址。但是,我只想在事件关键字指示的行中删除它。对我来说,最困难的是,在偶数关键字和MAC地址之间会有随机长度的关键字,包括数字和字母。 因此,我将替换为: [random length combinations of words, numbers, potentially punctuation or space] "event" [random length combinations of words, numbers, potentially pu

如何删除所有字母,直到第一个数字出现sed?

我有以下几行: XYZ2342 ABCD1323 KIL9824 我想删除开头的所有字母,因此对于上面的示例,我会得到: 2342 1323 9824 我试过这个: echo "ABC12345" | sed 's/[[:alpha:]]*[[:digit:]]//' 2345 但是它也删除了第一个数字,我如何使sed只删除字母(注意:它们总是ASCII) 如果相关的话,我正在使用FreeBSD sed实现。请尝试以下内容。我们需要替换所有内容,直到从开始到第一次出现

sed从文件中删除URL

我正在尝试编写一个sed表达式,可以从文件中删除URL 范例 http://samgovephotography.blogspot.com/ updated my blog just a little bit ago. Take a chance to check out my latest work. Hope all is well:) Meet Former Child Star & Author Melissa Gilbert 6/15/09 at LA's B&

sed问题插入冒号

您好,我想使用sed搜索一个文件,搜索3-5个字母字符和3个数字,并在第一个字母字符后插入冒号,在数字前插入冒号,使用Ubuntu 10.04.2 LTS上的GNU sed: sed -r -e 's/([a-zA-Z]{3,5})([0-9]{3})/\1:\2/g' 编辑:误读了OP的问题。更好的答案是: sed -r -e 's/([a-zA-Z])([a-zA-Z]{2,4})([0-9]{3})/\1:\2:\3/g' 如果您希望字符串abcdef123或abcde1234失败,您

在文件中替换环境变量:awk还是sed?

我在shell脚本中有一个环境变量文件,例如: # This is a comment ONE=1 TWO=2 THREE=THREE # End #!/bin/sh # Read variables source ./vars # Change a variable THREE=3 # Write variables back to the file?? awk 'BEGIN{FS="="}{print $1=$$1}' <./vars >./vars 在我的脚本中,我将这个文

sed中的条件分支

我有一个定义明确的问题,似乎是sed的一个很好的候选人 我的输入文件包含两个令牌之一: [文件]或[行] 结构如下所示: [FILE]: C:\Users\user\git\build.xml [FILE]: C:\Users\user\git\dataload-pom.xml [FILE]: C:\Users\user\git\local.properties [LINE]: [job.mail.toAddress=] [LINE]: [log.mail.toAddress

Sed 提取版本号子字符串

我有这个: Product Name Product Version ==================== ==================== vmware-workstation 9.0.2.1031769 我可以通过以下方式获得vmware workstation部件: $ vmware-installer -l | grep -Po "(?=v)[^ ]*(?= )" 如何获取版本号部分(没有构建,意思是9.0.2) 这: (?:) 避免使用s

Sed命令返回";无效的命令代码";

我正在尝试插入此文本 "error.emailNotActivated":"This email address has not been activated yet." 。。。在第5行使用sed 这是我目前的命令 translated=“此电子邮件地址尚未激活。”; sed-i'-e'5i\'$'\n''错误。emailNotActivated:“'\'$translated\'”local.strings; 不幸的是,我一直收到错误消息“无效命令代码T”。 sed似乎将冒号解释为命令的一

Sed 从AWK输出中删除行

我想从文件中删除少于2列的行: awk '{ if (NF < 2) print}' test one two 如果要根据条件将输入拆分为两个文件(名为“通过”和“失败”): awk '{if (NF > 1 ) print > "pass"; else print > "fail"}' input 如果您只是想过滤/删除NF2的行重定向到一个文件,以及NF为的行?请澄清:您的问题不明确。文本中说“小于2”(即NF

Sed 在包含关键字的行的开头和结尾插入标记

如果有人知道如何轻松做到这一点,请告诉我。我的结论如下: mac: 24:A4:3C:74:C0:49 name : SomeSome1 lastip : 192.168.1.178 txpower : 56 quality : 97 capacity : 95 mac: DC:9F:DB:62:10:BF name : SomeSome2 lastip : 192.168.1.58 txpower : 56 quality : 97 capacity : 11 mac: DC:9F:DB:3E

Sed 我应该使用cut还是awk来提取字段和字段子字符串?

我有一个带有管道分隔字段的文件。我想打印字段1的子集和字段2的全部: cat tmpfile.txt # 10 chars.|variable length num|text ABCDEFGHIJ|99|U|HOMEWORK JIDVESDFXW|8|C|CHORES DDFEXFEWEW|73|B|AFTER-HOURS 我希望输出如下所示: # 6 chars.|variable length num ABCDEF|99 JIDVES|8 DDFEXF|73 我知道如何获取字段1和字段2

Sed 使文件每行一个字时保持换行符?

我有一个这样的文件,infle.txt: foo bar hello world blah blah black sheep 我想得到: foo bar hello wolrd blah blah black sheep 我试过这个 echo infile.txt | sed -e 's/[[:space:]]/\n/g' | grep -v '^$' 但它无法识别换行符和输出: foo bar hello wolrd blah blah black sheep 如何实现

KSH:sed命令,用于搜索和替换文件中最后出现的字符串

我尝试使用sed搜索文件中的最后一个事件。在HP-UX中,tac选项不可用 例如:下面是文件中的数据 A|2121212|666666666 | 2|01|2 |B|1111111111 |234234234 |00001148| B|2014242|8888888888| 3|12|3 |B|22222222222 |45345345 |00001150| C|4545456|4444444444| 4|31|4 |B|3333333333333 |4234234 |00001148| 我正

用逗号分隔的行进行sed模式否定

我有一个充满行的文本文件,看起来像: Female,"$0 to $25,000",Arlington Heights,0,60462,ZD111326,9/18/13 0:21,Disk Drive 我正在尝试将所有逗号,更改为管道|,引号中的逗号除外。 尝试使用sed(我是新手)。。。而且它不起作用。使用: sed '/".*"/!s/\,/|/g' textfile.csv 有什么想法吗?使用awk可以: kent$ cat f foo,foo,"x,y,z",foo,"a,b,c"

如何使用sed在文件开头插入一行?

我试图在文件开头插入一行包含以下字符:~o。我正在使用:sed-i''“1s/^/~o\n/”宏,但换行选项根本不起作用。我应该如何改变它?谢谢您可以使用insert命令i: sed '1i\TEXT TO INSERT' file 说明: 1 Addresses the first line i The insert command inserts the following text before(!) line 1 \ Required after i

Sed linux演示了如何用文本包装多行搜索模式

我有一个html文件,其中包括以下部分: <div id='webnews'> ... variable stuff ... </div> <!-- <div id='webnews'> ... variable stuff ... </div> --> sed '/<div id="webnews"/, /<\/div>/ { p }' filename.html ... 可变的东西。。。 我想评论如下:

Sed只合并目录中的某些行

我正在使用sed合并目录中的文本文件行。 命令cd dir&&sed-e'N;s/\n/'*.txt可以很好地实现这一点,但是否有任何方法可以对其进行调整,使其仅将以**开头的行句子与以下以**结尾的句子组合在一起。所以 This is Line1 **This is Line2 This is Line3** This is Line4 This is Line5 变成 This is Line1 ** This is Line2 This is L

如何使用sed删除文件中与特定模式匹配且长于或短于特定长度的行

我能够分别删除具有特定模式和较短sed'/^.\{,20\}$/d'-I文件或较长sed'/^.\{25\}.*/d'-I文件的行,但如何在sed中统一模式和长度 包含字符的行应介于20到25个字符之间 包含B的行应介于10到15个字符之间 包含C的行应介于3到8个字符之间 应该从文件中删除所有其他行 1234567890 A 1234567890 12345 A 12345 1 A 1 1234567890 B 1234567890 12345 B 12345 1 B 1 1234567890

使用sed替换特定的行号

我使用以下内容替换行号29到32上的文本: sed -i '29,32 s/^ *#//' file 如何在上述命令中进一步添加行号,即line35到38、line43和line45m是一个标签 sed -i '29,32bm;35,38bm;43bm;45bm;b;:m;s/^ *#//' file 从man sed: b标签:分支到标签;若省略了标签,则分支到脚本的末尾 :标签:b和t命令的标签 这可能适用于您(GNU-sed): 使用awkawk'NR>28&&NR34&&NR

用sed连接两个特定的行

我试图用sed操作一个数据集,这样我就可以成批地操作它,因为数据集具有相同的结构 我的数据集有两行(本例中的第一行是第7行),如下所示: Enginenumber; ABX 105;Productionnumber.;01 2345 67- "",,8-9012 我想要的是: Enginenumber; ABX 105;Productionnumber.;01 2345 67-8-9012 因此,第二行中的数字(8-9012)被添加到第一行的末尾,因为这些数字彼此属于 我所尝试的: sed

Sed 递归查找和替换Unix路径

我正在尝试递归地查找root的所有实例,并将其替换为usr/local 我知道这个命令: find ./ -type f -exec sed -i -e 's/apple/orange/g' {} \; 在尝试用另一个字符串替换不带“/”的字符串时有效,但如何将“/”包含在替换的字符串中 要在替换中使用/,可以使用\进行转义, 或者s命令可以使用不同的分隔符: sed 's|root|usr/local|g' ... 此外,(非标准)-i选项需要FreeBSDsed(1)中的一个参数,并扩展

使用sed消除特定字符串

我感谢你在这个问题上的帮助。我喜欢从字符串中删除所有非特定模式的内容 例如,下面我想消除所有不是“5TTGTC”的东西 但正如这里所见,^5TTGTC是不对的。我使用了^(),^{},^[]的不同组合,但没有一个能提供我所需要的。感谢您的反馈 echo ".,..,...+5TTGTC...+5TTGCC.+5TTGTC,,.,.,,.,+5ttgtc,.,,.,.+5TTGTC.+5TTGTC,..+5TTGTC" | sed 's/^5TTGTC//g' 提前感谢如果需要区分大小写,可以

使用sed命令重命名fastq文件头

我正在尝试重命名fastq头并使用sed commmand在fastq头的末尾添加“/1”。 这是我的密码: sed i '1~4 s/$/\\1/g' seq/*_1.fq 但没有任何改变。有人知道如何解决这个问题吗?谢谢 对于与glob seq/*\u 1.fq匹配的文件,这将在第n*4+1行中添加/1,其中n>=0: sed -i '1~4s/$/\/1/' seq/*_1.fq 您没有提供任何输入,此处是我使用的: a b c d e f 结果是: a/1 b c d e/1 f

  1    2   3   4   5   6  ... 下一页 最后一页 共 32 页