我有一个名为log.txt的文件。文件包含如下: -
/proc
used avail
10 100
如何使用shell脚本从该文件中提取以下字符串。我想要提取下面的字符串。
/proc
10
100
答案 0 :(得分:1)
awk '{print $1 $4 $5}' log.txt
答案 1 :(得分:1)
awk '/\/proc/ {print;getline;getline;print $1"\n"$2}' log.txt
只要一行符合awk
,上述getline
命令就会调用/proc
两次。然后print
语句在匹配后打印出第二行。
<强>输出:强>
/proc
10
100
答案 2 :(得分:1)
使用sed,如果是空格,则介于10和100之间:
sed -e '2d;3s/ */\n/' log.txt
如果它是10到100之间的标签,你给了GNU sed:
sed -e '2d;3s/\t\t*/\n/' log.txt
如果它是10到100之间的标签,你没有给GNU sed,而是真正的标签,而不是上面的2 \ t。
答案 3 :(得分:0)
避免使用标准UNIX实用程序的sed(或awk),如果它是空格,则介于10和100之间:
paste -s -d " " file | tr -s " " | cut -d " " -f 1,4,5 | tr " " "\n"
如果它是标签,你有10到100之间,并且你有GNU实用程序:
paste -s -d "\t" file | tr -s "\t" | cut -f 1,4,5 | tr "\t" "\n"
如果它是10到100之间的标签,你没有给GNU实用程序,但是真正的标签而不是上面的\ t和真实而不是\ n。