Articles of awk

用perl / awk / sed预加string?

我正在尝试将脚本更改到我的apacheconfiguration文件(httpd.conf)。 我试图匹配下面的string: # # DirectoryIndex: sets the file that Apache will serve if a directory 并预备以下文本: # # Allow server status reports generated by mod_status, # with the URL of http://servername/server-status # Change the ".example.com" to match your domain to enable. # <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from localhost ip6-localhost […]

匹配来自文件的第一个文本块,在2个string之间

我试图仅匹配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 […]

AWK – 是否可以search模式,然后根据通配符对结果进行sorting?

我正在将一些单独序列化的PHP数组存储到一个文件中。 文件的每一行都包含一个序列化数组。 例如: a:2:{s:4:"name";s:8:"John Doe";s:3:"age";s:2:"20";} a:2:{s:4:"name";s:8:"Jane Doe";s:3:"age";s:2:"15";} a:2:{s:4:"name";s:12:"Steven Tyler";s:3:"age";s:2:"35";} a:2:{s:4:"name";s:12:"Jim Morrison";s:3:"age";s:2:"25";} a:2:{s:4:"name";s:13:"Apple Paltrow";s:3:"age";s:2:"75";} a:2:{s:4:"name";s:12:"Drew Nickels";s:3:"age";s:2:"34";} a:2:{s:4:"name";s:11:"Jason Proop";s:3:"age";s:2:"36";} 这是我的问题: 是否有可能“awk”该文件的以下模式: "name"*"*" 我想sorting基于第二个通配符的内容find的行。 awk可以做到这一点吗?

寻找棘手的一个class轮来获得awk输出的差异

可以说我有两个文件,如下所示: file1 a 23 b 34 c 47 file2 a justin_beiber_sucks b segmentation fault c jackson d nop 现在我想要的是得到两个文件的第一列的差异。 我现在就这样做 $cat file1 awk '{print $1}'> f1 $cat file2 awk '{print $1}'> f2 $diff -u f1 f2 但是这种方法感觉迟钝了。 任何棘手的方法呢? 问题是我总是把pipe视为一维的东西,但在这里是二维的。 我的意思是差异的input必须同时来自两个不同的来源。 起点可能是awk脚本会读取这两个文件,过滤并将结果保存在一个临时关联数组中,接下来它将调用diff并将提供其input。

如何在目录中查找最大的文件 – 忽略目录大小

我想要做这样的事情 du -a | sort -rn | head 但是我只想提取文件,忽略目录。 要清楚,我想遍历所有的子目录,但我不想find目录大小。 只是文件大小。 UPDATE 我也想要返回文件的完整path

一旦find另一个string就replace一个string

我以编程方式构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 […]

用awkparsingjava控制台输出

我试图用awk来parsing一个由java应用程序生成的输出,但是它不工作。 看来pipe道后面的命令无法获取/查看Java应用程序抛出的数据。 我正在执行下面的命令(使用命令生成的返回值): [root@localhost]# java -jar jmxclient.jar usr:pass host:port java.lang:type=Threading ThreadCount 06/11/2010 15:46:37 -0300 org.archive.jmx.Client ThreadCount: 103 我需要的只是string的最后部分。 所以我尝试使用awk(在行尾使用pipe道|awk -F ':' '{print $4}' : [root@localhost]# java -jar jmxclient.jar usr:pass host:port java.lang:type=Threading ThreadCount|awk -F ':' '{print $4}' 但输出不被parsing。 它引发整个string: 06/11/2010 15:46:37 -0300 org.archive.jmx.Client ThreadCount: 103 我也|cut -f4 -d":"用|cut -f4 -d":"得到相同的结果:string不被parsing。 所以我的问题是,我如何parsing输出才能得到string末尾的数字? TIA, 短发

删除以“mark”开头,以“;”开头的句子

我有100个包含以分号开头的句子并以分号(;)结尾的文件。 eg: mark is driving a car; 我需要删除每个句子从标记开始,并以“ ; ”结束。 如何使用sed或simmilar工具来做到这一点。 我已经使用sed来取代模式,但不知道如何删除模式。

删除非打印字符

我有一个制表符分隔的文本文件。 当我用vi编辑器打开文件时,可以看到^ M字符(蓝色)。 这不是我的数据的一部分。 它到达那里,因为原始的SQL数据有回车符号。 713498 29195 NWSO NE SA COLLEGE 2 O- 0.3 0.3 0.0 1 MHR NYY ^M aher 如何删除这个angular色,而不需要select标签位置? 换句话说,在最后的Y和“aher”之间应该有两个标签。

在使用sed / awk启动时写入/ etc / networking / interfaces?

新手在这里, 我试图在启动时使用(当前) sed写入自动生成的XEN Ubuntu(12.04 / 10.04 / 8.04)DomU服务器的自动生成的/etc/network/interfaces文件。 自动生成的文件格式如下: auto eth0 iface eth0 inet static 地址192.168.0.88 网关192.168.0.254 networking255.255.255.255 汽车 iface lo inet loopback 使用sed ,我试图改变第1和第2行,添加第三行,删除网关和最后两行,并在最后添加四个额外的行。 我现在坚持添加第三行,因为脚本每次运行时都会添加这行代码: #!/斌/庆典 sed -i“1s /.*/ auto lo eth0 /”/ tmp / interfaces sed -i“2s /.*/ iface lo inet loopback /”/ tmp / interfaces sed -i“2a \ iface eth0 inet static”/ […]