我希望能够调用包含以下命令的 shell 脚本。
awk -F $'\xE7' '{OFS ="¬"} { $3 = sprintf("%010s". $3) ; print $0 }' > outputfile
Run Code Online (Sandbox Code Playgroud)
但是我希望能够将一个 shell 脚本变量传递到这个命令中,该命令将用于替换$3AWK 命令中的 。
如何将 shell 脚本变量传递到此 AWK 命令中?
我需要找出 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)。
我有一个包含一些网站的 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) 我有一个 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 进行重复数据删除?
在脚本中,我收到了一些表单警告awk: warning: escape sequence \( treated as plain (。由于我想使用该脚本的输出来做事,我希望它只输出结果而不是警告。
我可以轻松纠正该警告,但是有没有办法消除 awk 中的所有警告?
我想将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) 嗨,我有一个脚本,在其中我需要从脚本生成的 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 和数组的想法,但似乎无法完全得到我需要的东西。
使用NAWK,如何总结的所有数字$1,$2和$3领域?
8 6 2
7 3 5
1 9 4
Run Code Online (Sandbox Code Playgroud)
我希望结果是 sum = 45
我有一个文件,其中包含许多行格式:
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)
我的直觉告诉我,正则表达式可能是正确的选择,但如果可以的话,我通常会尽量避免使用它,因为我更喜欢简单的匹配工具(我对此了解得更好)。
感谢您的帮助。