use*_*324 2 unix linux bash awk sed
如何从字符串中提取子字符串.例如,从字符串:
'/home/auto/gift/surprise'
Run Code Online (Sandbox Code Playgroud)
只采取:
'/home/auto/'
Run Code Online (Sandbox Code Playgroud)
请注意,'/home/auto/gift/surprise'
可能会有所不同,即,而不是有4个目录级别,它可能会转到6或8,但我只对前2个文件夹感兴趣.
这是我到目前为止尝试过的,没有成功:
$ pwd
'/home/auto/gift/surprise'
$ pwd | sed 's,^\(.*/\)\?\([^/]*\),\1,'
'/home/auto/gift/'
Run Code Online (Sandbox Code Playgroud)
我觉得最好用cut
这个:
$ echo "/home/auto/gift/surpris" | cut -d/ -f1-3
/home/auto
$ echo "/home/auto/gift/surpris/bla/bla" | cut -d/ -f1-3
/home/auto
Run Code Online (Sandbox Code Playgroud)
请注意,这cut -d/ -f1-3
意味着:根据分隔符剥离字符串/
,然后从第1部分到第3部分进行打印.
或者awk
:
$ echo "/home/auto/gift/surpris" | awk -F/ 'OFS="/" {print $1,$2,$3}'
/home/auto
$ echo "/home/auto/gift/surpris/bla/bla" | awk -F/ 'OFS="/" {print $1,$2,$3}'
/home/auto
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
126 次 |
最近记录: |