如何在第一行和最后一行的末尾添加双引号 [英] How to add the double quote at the very first and at the end of last line
问题描述
我希望在文件的第一行和最后一行的末尾添加双引号.
I am looking to add double quote at the very first line and at the of the last line in a file.
我下面有一些数据,它们仅提取80%或高于 80%
I have below data which is just fetching the data which is 80 or more than 80%
# ssh udcl804 aggr show -root false | awk '/^udc/{if($4 >= 80) print $0}'
udc8003_ssd02 127.2TB 10.09TB 92% online 179 udc8003 raid_dp,
udc8004_ssd02 127.2TB 18.95TB 85% online 149 udc8004 raid_dp,
udc8013_sata02 160.1TB 16.30TB 90% online 325 udc8013 raid_dp,
udc8014_sata02 160.1TB 22.18TB 86% online 328 udc8014 raid_dp,
udc8015_sata02 160.1TB 18.32TB 89% online 316 udc8015 raid_dp,
udc8016_sata02 160.1TB 23.97TB 85% online 316 udc8016 raid_dp,
udc8017_ssd02 131.6TB 25.79TB 80% online 101 udc8017 raid_dp,
udc8018_ssd02 131.6TB 22.30TB 83% online 83 udc8018 raid_dp,
udc8020_sata02 199.4TB 17.46TB 91% online 117 udc8020 raid_dp,
udc8026_ssd02 130.4TB 21.32TB 84% online 104 udc8026 raid_dp,
udc8030_ssd02 130.9TB 18.48TB 86% online 129 udc8030 raid_dp,
我的试用版:
我在下面尝试过,但这仅在每行的开头添加了双引号.
I tried below but this adds double quote at the beggining of each line only.
# ssh udcl804 aggr show -root false | awk '/^udc/{if($4 >= 80) print $0}' | sed 's/^/"/;s/$/"/;'
"udc8003_ssd02 127.2TB 10.11TB 92% online 179 udc8003 raid_dp,
"udc8004_ssd02 127.2TB 18.96TB 85% online 149 udc8004 raid_dp,
"udc8013_sata02 160.1TB 16.30TB 90% online 325 udc8013 raid_dp,
"udc8014_sata02 160.1TB 22.18TB 86% online 328 udc8014 raid_dp,
"udc8015_sata02 160.1TB 18.33TB 89% online 316 udc8015 raid_dp,
"udc8016_sata02 160.1TB 23.97TB 85% online 316 udc8016 raid_dp,
"udc8017_ssd02 131.6TB 25.79TB 80% online 101 udc8017 raid_dp,
"udc8018_ssd02 131.6TB 22.30TB 83% online 83 udc8018 raid_dp,
"udc8020_sata02 199.4TB 17.46TB 91% online 117 udc8020 raid_dp,
"udc8026_ssd02 130.4TB 21.32TB 84% online 104 udc8026 raid_dp,
"udc8030_ssd02 130.9TB 18.48TB 86% online 129 udc8030 raid_dp,
我需要数据来喜欢"..所有行"
,但在将它们作为json发布时,需要将每行分隔为新行.
I need the data to like " .. all lines"
but each needs be separated as a new line while POSTING them as a json.
我只是在寻找是否可以通过用换行符 \ n
分隔所有行来将所有行合并为一,这是目标格式所必需的.
I am just looking if we could all the lines into one by separating them by newline character \n
as this is required for the destination format.
"udc8003_ssd02 127.2TB 10.09TB 92% online 179 udc8003 raid_dp,\nudc8004_ssd02 127.2TB 18.95TB 85% online 149 udc8004 raid_dp,\nudc8013_sata02 160.1TB 16.30TB 90% online 325 udc8013 raid_dp,\nudc8014_sata02 160.1TB 22.18TB 86% online 328 udc8014 raid_dp,\nudc8015_sata02 160.1TB 18.32TB 89% online 316 udc8015 raid_dp,\nudc8016_sata02 160.1TB 23.97TB 85% online 316 udc8016 raid_dp,\nudc8017_ssd02 131.6TB 25.79TB 80% online 101 udc8017 raid_dp,\nudc8018_ssd02 131.6TB 22.30TB 83% online 83 udc8018 raid_dp,\nudc8020_sata02 199.4TB 17.46TB 91% online 117 udc8020 raid_dp,\udc8026_ssd02 130.4TB 21.32TB 84% online 104 udc8026 raid_dp,\nudc8030_ssd02 130.9TB 18.48TB 86% online 129 udc8030 raid_dp,"
推荐答案
您可以使用以下单个awk来完成工作:
You may use this single awk to get the job done:
ssh udcl804 aggr show -root false |
awk '/^udc/ && $4 >= 80 {sub(/\r$/, ""); s = (s == "" ? "" : s "\\n") $0} END {printf "\"%s\"\n", s}'
"udc8003_ssd02 127.2TB 10.09TB 92% online 179 udc8003 raid_dp,\nudc8004_ssd02 127.2TB 18.95TB 85% online 149 udc8004 raid_dp,\nudc8013_sata02 160.1TB 16.30TB 90% online 325 udc8013 raid_dp,\nudc8014_sata02 160.1TB 22.18TB 86% online 328 udc8014 raid_dp,\nudc8015_sata02 160.1TB 18.32TB 89% online 316 udc8015 raid_dp,\nudc8016_sata02 160.1TB 23.97TB 85% online 316 udc8016 raid_dp,\nudc8017_ssd02 131.6TB 25.79TB 80% online 101 udc8017 raid_dp,\nudc8018_ssd02 131.6TB 22.30TB 83% online 83 udc8018 raid_dp,\nudc8020_sata02 199.4TB 17.46TB 91% online 117 udc8020 raid_dp,\nudc8026_ssd02 130.4TB 21.32TB 84% online 104 udc8026 raid_dp,\nudc8030_ssd02 130.9TB 18.48TB 86% online 129 udc8030 raid_dp,"
说明:
-
/^ udc/&&$ 4> = 80
:仅针对这两个条件 -
{sub(/\ r $/,");
:从所有行中删除尾随的\ r
-
s =(s =="?":s" \\ n)$ 0
:继续将每一行保存在变量s
中使用\ n
作为行定界符 -
END {printf"\"%s \"\ n",s}
:打印缓冲区,两侧均带有"
.
/^udc/ && $4 >= 80
: For these 2 conditions only{sub(/\r$/, "");
: Remove trailing\r
from all liness = (s == "" ? "" : s "\\n") $0
: Keep saving each line in variables
with\n
as line delimiterEND {printf "\"%s\"\n", s}
: Print buffer with"
on both sides.
这篇关于如何在第一行和最后一行的末尾添加双引号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!