Articles of awk

使用awk或sed从ifconfigparsing数据?

我想parsing从sed的ifconfig输出的一些数据,但我不能够正确地做到这一点。 我想要命令提取我后面的数字。 例如,我有兴趣提取发送的字节: eth1 Link encap:Ethernet HWaddr 00:00:00:09:15:f7 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::92e2:baff:fe08:35c7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:75141 errors:0 dropped:0 overruns:0 frame:0 TX packets:78046 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:9040489 (9.0 MB) TX bytes:34806464 (34.8 MB) 如果我使用sed: ifconfig eth1 | sed 's|.*RX bytes:\([0-9]*\).*|\1|g' 我得到这个输出: eth1 Link encap:Ethernet […]

在bash中parsingCSV并分配variables

我有一个csv的格式(在Linux上工作Bash) DN , MAC , Partition , 123 , abc , xyz 321 , asd , asd 我可以使用awkparsing它 eval MAC=($(awk -F "," '{print $1}' random.csv)) 这是为CSV中的每一列完成的,因此我可以单独调用DN[2] , MAC[2]等,这些是手动的,并且可以单独parsing它们。 但是,我怎么可以逐行parsingCSV? 例如:如果我要求DN是123 ,则还应该返回相应的MAC和Partition 。

Java exec()不会返回pipe道连接命令的预期结果

我正在调用通过pipe道连接的命令行程序。 所有这些都可以在Linux上运行。 我的方法: protected String execCommand(String command) throws IOException { String line = null; if (command.length() > 0) { Process child = Runtime.getRuntime().exec(command); InputStream lsOut = child.getInputStream(); InputStreamReader r = new InputStreamReader(lsOut); BufferedReader in = new BufferedReader(r); String readline = null; while ((readline = in.readLine()) != null) { line = line + readline; } } […]

awk / sed:在特定块号的最后一行之前插入文件内容

给定是两个文件,第一个是Apacheconfiguration文件: $ cat vhosts-ssl.conf <VirtualHost *:443> vhost 1 foobar 1 foobar 2 barfoo 1 barfoo 2 </VirtualHost> <VirtualHost *:443> vhost 2 foobar 2 barfoo 1 foobar 1 barfoo 2 </VirtualHost> <VirtualHost *:443> vhost 3 foobar 1 barfoo 1 foobar 2 barfoo 2 </VirtualHost> <VirtualHost *:443> vhost 4 foobar 1 foobar 2 barfoo 1 barfoo 2 […]

如何基于两个文件之间的公共字段使用AWK删除一个文件中的重复行?

我有两个文件 文件1包含3个字段 文件2包含4个字段 文件1的行数比文件2的行数小得多 我想通过以下操作来比较基于第一个字段的两个文件 如果文件1的任何一行中的第一个字段出现在文件2的一行的第一个字段中,则不要打印该文件2的该行。 任何意见将不胜感激。 Input File 1 S13109 3739 31082 S45002 3800 31873 S43722 3313 26638 Input File 2 S13109 3738 31081 0 S13109 3737 31080 0 S00033 3008 29985 0 S00033 3007 29984 0 S00022 4130 31838 0 S00022 4129 31837 0 S00188 3317 27372 0 S45002 3759 31832 0 S45002 […]

从txt文件中删除重复的行

我正在处理包含按行分隔的数据的大型文本文件(〜20MB)。 大多数数据项是重复的,我想删除这些重复只保留一个副本。 此外,为了使问题稍微复杂一些,重复添加一些附加信息。 在这种情况下,我需要保持包含额外信息的条目并删除旧版本。 例如,我需要从这个: BOB 123 1DB JIM 456 3DB AX DAVE 789 1DB BOB 123 1DB JIM 456 3DB AX DAVE 789 1DB BOB 123 1DB EXTRA BITS 对此: JIM 456 3DB AX DAVE 789 1DB BOB 123 1DB EXTRA BITS NB。 最后的顺序并不重要。 什么是有效的方法来做到这一点? 我可以使用awk,python或任何标准的linux命令行工具。 谢谢。

使用AWK从两个文件中分解n个列

我有两个N列数的文件 文件1: A 1 2 3 ……. Na1 B 2 3 4 ……. Nb1 文件2: A 2 2 4 ……. Na2 B 1 3 4 ……. Nb2 我想要一个输出从File1的第一列值将被从File2的第一列中减去,这样直到列N如下所示: A -1 0 -1 …….. (Na1-Na2) B 1 0 0 …….. (Nb1-Nb2) 如何在Linux环境中执行AWK或Perl脚本?

如何使用awk将文件的某个字段更改为大写?

我有这样的文本文件: 1 http http 3 4 5 2 dns dns 4 3 ftp ftp 4 5 6 8 我想输出是这样的: 1 HTTP http 3 4 5 2 DNS dns 4 3 FTP ftp 4 5 6 8 我想把第二个字段从小写变成大写,只有第二个字段。 请注意,某一行中的字段数量不固定。 我可以用awk完成这个目标吗?

在Mac OS X上使用AWK分割文件

我想在特定的分隔符上使用AWK拆分文件。 awk代码如下所示: awk '/SEPARATOR/{n++}{print > "part" n ".txt" }' in.txt 这个代码在我的Linux系统上完美的工作。 但是,当在Mac OS X上运行完全相同的代码时,出现以下错误: awk: syntax error at source line 1 context is /SEPARATOR/{n++}{print > "part" >>> n <<< ".txt" } awk: illegal statement at source line 1 我认为这是在OS X附带的awk和Linux的mawk之间的某种区别。 在打印中删除string连接可以让awk程序在两个平台上工作,但我更愿意保留前缀和surfix。 如何编写一个awk程序,将分隔符上的文件分成多个编号的部分,并在两个平台上工作?

在SLURM sbatch脚本中使用Bashvariables

我试图从另一个文件中获取一个值,并在SLURM提交脚本中使用它。 但是,我得到一个错误,该值是非数值的,换句话说,它不被解除引用。 这是脚本: #!/bin/bash # This reads out the number of procs based on the decomposeParDict numProcs=`awk '/numberOfSubdomains/ {print $2}' ./meshModel/decomposeParDict` echo "NumProcs = $numProcs" #SBATCH –job-name=SnappyHexMesh #SBATCH –output=./logs/SnappyHexMesh.log # #SBATCH –ntasks=`$numProcs` #SBATCH –time=240:00 #SBATCH –mem-per-cpu=4000 #First run blockMesh blockMesh #Now decompose the mesh decomposePar #Now run snappy in parallel mpirun -np $numProcs snappyHexMesh -parallel […]