【发布时间】:2016-09-24 01:38:21
【问题描述】:
我是 shell 脚本的新手。我需要从下面的绝对路径中获取值“test”并打印出来。如何使用 SED 命令实现这一点。请帮忙。
/home/path/test_script/logs
【问题讨论】:
我是 shell 脚本的新手。我需要从下面的绝对路径中获取值“test”并打印出来。如何使用 SED 命令实现这一点。请帮忙。
/home/path/test_script/logs
【问题讨论】:
在我看来,awk 在这项任务中表现得更好。使用 -F 可以使用多个分隔符,例如“/”和“_”:
echo /home/path/test_script/logs | awk -F'/|_' '{print $4}'
【讨论】:
sed 代码首先删除_ 及其右侧 的内容,然后删除/s 及其左侧 的内容,只留下“测试”。
echo /home/path/test_script/logs | sed 's/[_].*//;s,.*/,,g'
输出:
test
【讨论】:
你可以试试awk命令:
echo /home/path/test_script/logs | awk -F"/" '{print $4}' | cut -c1-4
您的输出应该是“测试”。 您还可以通过执行以下操作将“测试”值分配给变量:
var1=`echo /home/path/test_script/logs | awk -F"/" '{print $4}' | cut -c1-4`
【讨论】: