标签: awk

将 shell 脚本变量传递给 AWK 命令

我希望能够调用包含以下命令的 shell 脚本。

awk -F $'\xE7' '{OFS ="¬"} { $3 = sprintf("%010s". $3) ; print $0 }' > outputfile
Run Code Online (Sandbox Code Playgroud)

但是我希望能够将一个 shell 脚本变量传递到这个命令中,该命令将用于替换$3AWK 命令中的 。

如何将 shell 脚本变量传递到此 AWK 命令中?

awk shell-script

3
推荐指数
1
解决办法
3170
查看次数

使用 AWK 获取 LVM 大小?

我需要找出 image 的 LVM 大小vm001。假设我有一个名为/dev/VGgroup/vm001. 现在使用lvdisplay我可以找出大小:

--- Logical volume ---
  LV Name                /dev/VGgroup/vm001
  VG Name                VGgroup
  LV UUID                i0aYKs-Hpfv-q64V-9Rqu-6Wrq-eV3C-pZzo0D
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                25.00 GB
  Current LE             6400
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:41
Run Code Online (Sandbox Code Playgroud)

如何使用仅输出的脚本/命令找出 LV 大小25?我知道awk你可以水平地找到字符串,但不能垂直地(据我所知)。

编辑 有更多的逻辑卷,使用lvdisplay | awk '/LV Size/ { print $3 }'将输出所有大小(显然),我如何只获得我想要的卷的大小?(在这种情况下vm001)。

linux regex awk lvm string

3
推荐指数
1
解决办法
5621
查看次数

Grep,找到最少 x 个单词的行

有没有办法找到所有包含至少x 个单词的grep 行?

linux grep awk find

3
推荐指数
1
解决办法
2809
查看次数

使用 shell 脚本或 awk 从文件中提取字符串

我有一个包含一些网站的 txt 文件。我想提取网站我该怎么做?

xhr_object.open("GET",filename,false );
<li><a href="http://www.dakar.com" TARGET=_BLANK>dakar.com</a></li>
<a href="http://www.docomolabs-usa.com/" TARGET="other"><img src="art/docomo.gif" width="104" height="80" align="middle" border="0" alt="NTT Docomo"></a>
<a href="http://www.google.com/" TARGET="other"><img src="art/google.gif" width="121" height="50" align="middle" border="0" alt="Google"></a>
<a href="http://www.hpl.hp.com/" TARGET="other"><img src="art/hp_
<a href="http://www.ibm.com/" TARGET="other"><img src="art/ibmlogo.gif" width="100" height="38" align="middle" border="0" alt="IBM"></a>
<a href="http://research.microsoft.com/" TARGET="other"><img src="art/microsoft.gif" width="135" height="50" align="middle" border="0" alt="Microsoft Research"></a>
<a href="http://www.vmware.com/" TARGET="other"><img src="art/vmware.gif" width="140" height="40" align="middle" border="0" alt="vmware"></a>
function domainForHostname(hostname) {
Vary: Host
Allow: GET
Run Code Online (Sandbox Code Playgroud)

和输出:

http://www.dakar.com
http://www.docomolabs-usa.com/
http://www.google.com/
http://www.hpl.hp.com/
http://www.ibm.com/
http://research.microsoft.com/
http://www.vmware.com/
Run Code Online (Sandbox Code Playgroud)

编辑:另一个输入示例

Host: mail.google.com
Host: mail.google.com
GET …
Run Code Online (Sandbox Code Playgroud)

linux shell awk

3
推荐指数
1
解决办法
4万
查看次数

如何对很长的单词列表进行排序和重复删除?

我有一个 400 兆字节的文件。该文件是一个单词列表,每个单词占一行。行尾是 cr/lf 和 lf 的混合。有些词是unicode。

我更喜欢 Linux 或 Windows 的答案。我很乐意安装软件,但我更喜欢开源。

我需要删除所有少于 8 个字符的单词。然后我需要对列表进行重复数据删除。(对列表进行排序很好,但不需要,除非它是流程的一部分。)我不在乎 unicode 单词 - 它们可以留下也可以离开。把它们去掉就好了。

要删除所有不超过 7 个字符的单词,我使用 awk:

awk "length($0) > 7" wordlist.txt > mynewwordlist.txt
Run Code Online (Sandbox Code Playgroud)

(这是 Windows,抱歉“而不是 ')

然后我尝试使用排序,因为我可以再次使用 awk 去重复行。Sort 不喜欢这个词表。我认为(但我不确定)unicode 破坏了它。

那么,我该如何去重复词表呢?或者我如何对词表进行排序,以便我可以使用 awk 进行重复数据删除?

windows linux awk sorting

3
推荐指数
1
解决办法
1655
查看次数

禁止 awk 警告

在脚本中,我收到了一些表单警告awk: warning: escape sequence \( treated as plain (。由于我想使用该脚本的输出来做事,我希望它只输出结果而不是警告。

我可以轻松纠正该警告,但是有没有办法消除 awk 中的所有警告?

bash awk

3
推荐指数
2
解决办法
1万
查看次数

用 bash 解析“uptime”的输出

我想将uptime命令的输出保存到 Bash 脚本中的 csv 文件中。由于该uptime命令根据自上次重新启动以来的时间具有不同的输出格式,因此我想出了一个基于 的非常繁重的解决方案case,但肯定有一种更优雅的方法来做到这一点。

正常运行时间输出:

 8:58AM  up 15:12, 1 user, load averages: 0.01, 0.02, 0.00
Run Code Online (Sandbox Code Playgroud)

想要的结果:

15:12,1 user,0.00 0.02 0.00,
Run Code Online (Sandbox Code Playgroud)

当前代码:

case "`uptime | wc -w | awk '{print $1}'`" in
#Count the number of words in the uptime output

10)
    #e.g.:  8:16PM  up  2:30, 1 user, load averages: 0.09, 0.05, 0.02
    echo -n `uptime | awk '{ print $3 }' | awk '{gsub ( ",","" ) ; print $0 }'`","`uptime | …
Run Code Online (Sandbox Code Playgroud)

freebsd bash awk uptime

3
推荐指数
1
解决办法
4131
查看次数

首先引用另一个文件的脚本

嗨,我有一个脚本,在其中我需要从脚本生成的 IP 中获取主机名。该脚本会将这些 IP 生成为 1 个只有 1 列的整洁文件。它实际上只是 IP 地址(每行 1 个)。我有另一个名为“db”的文件,如下所示:

IP Hostname
Run Code Online (Sandbox Code Playgroud)

'db' 是我的数据库,用于存储委派给这些 IP 的 IP 地址和主机名列表。这些是静态地址,不会改变,通常是服务器或交换机等。我需要的是脚本生成的 IP 地址,我想用这个数据库文件中的主机名 FIRST 解析它们,如果没有在那里找到它,然后运行host命令。我已经在做后者,host但我真的希望它们首先来自我的 db 文件。最终输出只需要 1 个文件和 1 列主机名。我有一些使用 awk 和数组的想法,但似乎无法完全得到我需要的东西。

networking linux script bash awk

3
推荐指数
1
解决办法
165
查看次数

使用 nawk,如何对 $1、$2 和 $3 字段中的所有数字求和?

使用NAWK,如何总结的所有数字$1,$2和$3领域?

8     6     2

7     3     5

1     9     4
Run Code Online (Sandbox Code Playgroud)

我希望结果是 sum = 45

linux unix awk

2
推荐指数
2
解决办法
1490
查看次数

Linux 从文件中提取匹配的文本字段

我有一个文件,其中包含许多行格式:

bc("STG1/Phone") = {type=bana_pub; cbb=12.354; abb=0.0}`
Run Code Online (Sandbox Code Playgroud)

我正在寻找提取cbb=12.354;. 目前,我正在执行以下操作:

cat input_file.txt | grep cbb | awk -F " " '{ print $4 }'`
Run Code Online (Sandbox Code Playgroud)

问题是我的方法是特定于位置的,即假设它始终是第四个字段。cbb=在知道=它可以是任意长度并且分号是可选的之后,如何提取表单的文本;。我唯一的保证是,cbb=12.354;如果有帮助的话,该术语将被空格包围。将来的文件可能是以下格式:

bc("STG1/Phone") = {type=bana_pub; cbb=12.354; abb=0.0}
bc("STG1/Phone") = {type=bana_pub;  abb=0.0; cbb=12.354}
Run Code Online (Sandbox Code Playgroud)

我的直觉告诉我,正则表达式可能是正确的选择,但如果可以的话,我通常会尽量避免使用它,因为我更喜欢简单的匹配工具(我对此了解得更好)。

感谢您的帮助。

linux awk sed command-line

2
推荐指数
1
解决办法
2240
查看次数

标签 统计

awk ×10

linux ×7

bash ×3

command-line ×1

find ×1

freebsd ×1

grep ×1

lvm ×1

networking ×1

regex ×1

script ×1

sed ×1

shell ×1

shell-script ×1

sorting ×1

string ×1

unix ×1

uptime ×1

windows ×1