Questions tagged «awk»

AWK是一种文本处理语言。它主要用于处理和处理结构化数据,以及生成报告。

1
awk - awk连接字符串变量
我想在awk中awk连接字符串变量。我怎样才能做到这一点?我试过了: BEGIN{ t="." r=";" w=t+r print w} 但我不工作。输出: 0 或者我想添加变量和函数的结果。输入: t t t t a t a ta ata ta a a 脚本: { key="t" print gsub(key,"")#<-it's work b=b+gsub(key,"")#<- it's something wrong } END{ print b}#<-so this is 0 输出: 4 2 2 0#<-the last print
4 awk  string 


2
将多页文件传递给awk时确定文件的开头
我有一个像以下一样的shell脚本 - 找 ”。” “帐户”-maxdepth 1 -name“* .aspx”| xargs awk -f get_controls.awk 它将多个文件传递给awk脚本 BEGIN{ FS="\"" } ... /Src=/{ printf("\t%s \r\n", $6); } 我想从shell脚本或文件开头的awk中打​​印出当前文件名。 awk确实知道当前的文件名,它在FILENAME变量中,但我无法确定文件的开头。我试过(NR==1),但所有文件都作为流传递给awk,NR的值不断增加。 在我打字的时候想出来了。将在下面发布答案!

2
使用脚本在文本行中增加一个值
我有一个文本文件作为输入。我需要通过某些程序,SED,AWK等进行过滤,无论何时,每次运行脚本时都需要在特定行中增加一个值。 最好的方法是什么? 示范文本: File Type Rev 100 data a data b file loc comment line eof 只有“ Rev 100”应更改为“ Rev 101”
3 batch  sed  awk  plaintext 


2
如何将bash变量(密码)传递给IRSSI配置文件?
我正在使用IRSSI,我想知道如何将IRC频道的密码传递给IRSSI配置文件( ~/.irssi/config )而不直接在文件中写入它们。 在Mutt中,我有一个awk命令,用于查询加密的主文件夹中的本地文件,如下所示: set my_pass1=`awk '/fradeve_gmail:/ {print $2}' ~/.mutt/muttpass` set my_pass2=`awk '/fradeve_inventati:/ {print $2}' ~/.mutt/muttpass` IRSSI有类似的解决方案吗? PS:显然我 别 想把IRSSI配置文件保存在加密的家里:)
2 bash  perl  awk  mutt  irssi 

3
如何获取地址并修改键/值格式文件中的值?
我正在为我的Raspberry Pi编写一个shell脚本,因此它设置了一个具有唯一SSID的访问点。为此,我想使用WiFi加密狗的mac-address作为我的SSID。为此,我想使用awk awk '{ gsub(/:/, ""); print > "file" }' /sys/class/net/wlan0/address 我可以将格式正确的mac地址写入文件,但是如何将其插入到另一个文件的特定行/位置?我有类似的想法 awk '{ gsub(/:/, ""); "replace ssid= at /etc/hostapd/hostapd.conf" }' /sys/class/net/wlan0/address 对我这样的新手的任何帮助和解释都表示赞赏。 我的输入文件如下: $ cat /sys/class/net/wlan0/address 01:23:45:67:89:ab 我正在尝试获取它并替换ssid文件中的值,如: interface=wlan0 driver=nl80211 ssid=7cdd907f6b07 hw_mode=g channel=11 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=1 wpa_passphrase=My_Passphrase wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP


2
使用sed从RTF文件中删除换行符
我有一个RTF文件格式如下: Lorem ipsum dolor sit amet, consectetur adipiscing elit.\par Nullam vitae sem porttitor urna pellentesque gravida. Nulla\par consequat purus vel est vehicula porttitor.\par Maecenas pharetra metus in enim sollicitudin sollicitudin.\par Etiam et odio tellus, eget placerat enim. Aliquam sem purus,\par gravida sed feugiat eget, consectetur quis nisl.\par (\ par为简洁而添加) 如您所见,已插入换行符以适合页面的宽度。当我尝试读取iPhone上的文本时出现问题,该文本具有不同的行长度。线条断裂,可读性受阻。 …
2 linux  regex  sed  awk  rtf 

1
首先引用另一个文件的脚本
嗨我有一个脚本,在其中我需要从脚本生成的IP中获取主机名。该脚本将这些IP生成为1个整齐的文件,只有1列。它实际上只是IP地址(每行1个)。我有另一个名为'db'的文件,如下所示: IP Hostname 'db'是我的数据库,它存储委托给这些IP的IP地址和主机名列表。这些是静态地址,不会改变,通常是服务器或交换机等。我需要的是脚本生成的IP地址,我想用这个数据库文件中的主机名FIRST来解决它们,如果它没有找到它,然后运行host命令。我已经在做后者,host但我真的希望它们首先来自我的db文件。最终输出只需要1个文件,其中包含1列主机名。我有一些使用awk和数组的想法,但似乎无法完全得到我需要的东西。

2
在Shell脚本中比较并计算具有多个值的两个变量
我已经在shell脚本中编写了三个配置单元查询,用于计算借项贷方和目标金额,这些金额输出低于值: debit_amount : BOI 4760545.650000 AXIS 284.49000000 SBI 87.220000000 ICICI 14199.66000 credit_amount : BOI 3424.65 AXIS 43.4546 SBI 4.54546 ICICI 3423.3465 target_amount : BOI 4757121.000000 AXIS 241.0354 SBI 82.67454 ICICI 10776.3135 现在我想计算每个银行的借方贷方金额,并与target_amount值进行比较 如何用shell脚本编写它? 我尝试使用awk命令,但未获得所需的输出。

5
如何按照指定的行数拆分CSV文件?
我已经将CSV文件(大约10,000行;每行具有300列)存储在LINUX服务器上。我想将此CSV文件分解为500个CSV文件,每个文件20条记录。(每个具有与原始CSV中相同的CSV标头) 有什么linux命令可以帮助这种转换吗?
2 linux  unix  sed  csv  awk 

1
如何删除文件中第3次出现的模式
如何在文件中找到模式的第三次出现(注意:不在一行中)并删除包含模式的行 ñ 下面的行(比如下面的5行)。 例如。, COVER fafjasfj isfapifj ajfsdaijf COVER oaijfeiahf aasdf fafadf df This is a COVER * efjafa * aifaidfj * aifhaidfh * idfhaifh * aidfhiadhf * aifhaifh iafaishf jgsjg fbsfgbf 我想删除包含第三次出现的模式的完整行 COVER 以及下面的五行。这些线用表示 * 秒。 (注意: * s不是文件的一部分。

1
`nawk`“与`make`不起作用?为什么?
我有以下别名: alias mca_color='nawk '"'"'BEGIN { arr["Creating shared object"] = "1;31";} \ { l = $0; for (pattern in arr) \ { gsub(".*" pattern ".*", "\033[" arr[pattern] "m&\033[0m", l); } print l; }'"'" 我使用类似的别名来着色其他输出(使用更多模式,但这仅仅是例如)。 所以,这个别名有效,如果我使用它: $ echo "-ne Creating shared object test.so ..." | mca_color 该 echo 印有红色。 但 ,当我尝试: $ …
1 bash  colors  awk  make 

1
使用带头的awk时如何解决“断管”错误
我从一个执行类似命令的命令中得到了管道错误: ls -tr1 /a/path | awk -F '\n' -vpath=/prepend/path/ '{print path$1}' | head -n 50 基本上我想列出(使用绝对路径)目录中最旧的X文件。 似乎发生的是输出是正确的(我得到50个文件路径输出)但是当head输出50个文件时它关闭stdin导致awk抛出一个损坏的管道错误,因为它仍然输出更多的行。
1 linux  pipe  awk  head 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.