Articles of awk

如果其他列的AWK写入到新列的基础上

我有一个列A,B,C,D的CSV文件。 D列包含0到1的值。我想用AWK在列D中的值写入一个新的E列。 例如: 如果列D中的值<0.7,则列E中的值= 0。 如果列D> = 0.7中的值,则列E = 1中的值。 我能够打印列E的输出,但不知道如何写入到一个新的列。 它可能写我的代码的输出到一个新的文件,然后粘贴回旧文件,但我想知道是否有一个更有效的方法。 这是我的代码: awk -F"," 'NR>1 {if ($3>=0.7) $4= "1"; else if ($3<0.7) $4= "0"; print $4;}' test_file.csv

使用Linux删除短于4个字符的单词

我已经阅读了下面的内容,并尝试重写我想要的命令逻辑。 但是,我只是无法做到。 在bash中删除长度小于2的单词 试过: echo $example | sed -e 's/ [a-zA-Z0-9]\{4\} / /g' echo $example | sed -e 's/ [a-zA-Z0-9]\{4\} / /g' 使用sed删除所有大于6个字符的单词 试过: sed -e s'/[A-Za-z]\{,4\}//g' 请帮助我一个简单的awk或sed命令以下内容: Here is an example line of fantastic data 并得到: Here example line fantastic data

awk – 如何“重新awk”输出?

我需要一个文件并计算$ 7的出现次数 – 我已经用awk做了这个(因为我需要通过更多的awk来运行这个) 我想要做的就是把它合并成一个脚本 – 到目前为止我已经有了 #! /usr/bin/awk -f # get the filename, count the number of occurs # <no occurs> <filename> { print $7 | "grep /datasheets/ | sort | uniq -c"} 我如何获取输出,并通过更多的awk命令运行它 – 在同一个文件中 最终,我需要能够运行 ./process.awk <filename> 所以它可以成为以前的设置的替代品,这将花费太多时间/ effor来改变 –

使用bash / awk将文件A和文件B与困难的字段分隔符合并

类似于我的老问题: 如何合并FileA.txt和FileB.txt给FileB.txt覆盖权力使用bash脚本? 我想合并两个configuration值文件,我也有fileA和fileB。 我希望fileA中的所有行都在fileA中,如果两个文件中都出现相同的configuration键,我希望fileB中的值覆盖fileA中的值。 每行总是以'config'开始,然后是一个键,最后是一个值。 难以实现的部分是,该值可以是带空格的引号string来分隔多个值(请参阅“网站”值)。 我已经有了一些使用awk的经验和一些bash的经验,但是我不能为了我的生活找出一个办法来做到这一点。 所有的帮助表示赞赏。 谢谢 的fileA: config lanIP 10.1.1.1 config wanIP 1.1.1.1 config wanIPMask 255.255.255.255 config website "http://google.com http://yahoo.com" FILEB: config lanIP 192.168.1.1 config wanIP 1.1.1.1 config website "http://google.com http://yahoo.com" config moreWebsite "http://google.com http://msn.com" 预期产出: config lanIP 192.168.1.1 config wanIP 1.1.1.1 config wanIPMask 255.255.255.255 config website "http://google.com http://yahoo.com" config moreWebsite "http://google.com […]

Linux Shell:如果string中有相同的单词,则将两个string从文件中合并

小问题,但对我来说很难。 我有两个文件。 文件A: www.def.aBc.com 123.aaa.cOm 555.bbb.com.hk www.fwe.wef.CcC.hk www.abc.com 555.hjr.bbb.cOm.hk www.ccc.hk www.def.Abc.coM 123.aaa.COM 555.bbb.com.Hk www.fwe.wef.cCc.hk www.aBc.com 555.hjr.bbb.com.hK www.ccc.hk 文件B: aaa.com abc.com bbb.com.hk ccc.hk 如果匹配单词的结尾(不关心大小写),我试图将文件B附加到文件A. 这样的输出: www.def.aBc.com abc.com 123.aaa.cOm aaa.com 555.bbb.com.hk bbb.com.hk www.fwe.wef.CcC.hk ccc.hk www.abc.com abc.com 555.hjr.bbb.cOm.hk bbb.com.hk www.ccc.hk ccc.hk www.def.Abc.coM abc.com 123.aaa.COM aaa.com 555.bbb.com.Hk bbb.com.hk www.fwe.wef.cCc.hk ccc.hk www.aBc.com abc.com 555.hjr.bbb.com.hK bbb.com.hk www.ccc.hk ccc.hk

从标签分隔的文件中删除重复的单词/string

我想使用Linux命令从大的制表符分隔的文件中删除重复的单词/string。 names john, cnn, mac, tommy, mac, patrick, ngc, discovery, john, cnn, adam, patrick cities san jose, santa clara, san franscisco, new york, san jose, santa clara 以上是文件格式,我想删除重复的单词后保留制表符和逗号。 names john, cnn, mac, tommy, patrick, ngc, discovery, adam cities san jose, santa clara, san franscisco, new york 任何帮助,将不胜感激。

如何通过ssh命令行来远程命令的引号

我在远程服务器上发出以下命令时遇到问题。 | awk“{print $ 1}”似乎对输出没有任何影响。 我错误地转义引号字符? 更糟糕的是,这两个命令实际上是通过一个python脚本提交的…因此使得转义更容易混淆。 在本地服务器上: ssh remote.server.com "find /root/directory -type f -exec md5sum {} + | awk '{print $1}'" 在远程服务器上: find /root/directory -type f -exec md5sum {} + | awk '{print $1}'

如何在vi编辑器或linux中find并删除两个文件中的重复行

我有2个文件A和B都有超过100行。 我想删除这两个文件之间的通用行。 A: asdf123 fdsa123 rrrr456 yyyy555 B: fdsa123 hhhh888 yyyy555 所以现在的文件应该是 A1: asdf123 rrrr456 B1: hhhh888

使用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 。