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

时间:2011-08-08 05:27:52

标签: string unix shell extract

我有一个名为log.txt的文件。文件包含如下: -

/proc
used    avail
10      100

如何使用shell脚本从该文件中提取以下字符串。我想要提取下面的字符串。

/proc
10
100

4 个答案:

答案 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。