使用awk在shell中分割字符串,比如输入“/proj/aa/bb"去掉最后一个”/"及之后的“bb"
时间: 2024-01-11 11:02:55 浏览: 23
可以使用awk的split函数来实现字符串分割,具体操作如下:
```
echo "/proj/aa/bb" | awk -F'/' '{split($NF,a,"/");NF--;printf("%s%s", $0, (NF?"/":"")a[1])}'
```
解释:
1. -F'/' 表示以 '/' 作为分隔符
2. '{split($NF,a,"/");}' 表示将最后一个字段 $NF (bb) 以 '/' 为分隔符分割成数组 a
3. 'NF--;printf("%s%s", $0, (NF?"/":"")a[1])' 表示删除最后一个字段 NF--,然后将剩余的字段以 '/' 连接起来,再加上数组 a 的第一个元素
输出结果为:/proj/aa
相关问题
awk '/aa/,/bb/'
引用<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [awk 匹配_利器 | 测试必会之 Linux 三剑客 ( grep / awk / sed )](https://blog.csdn.net/weixin_39782433/article/details/109954766)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *3* [linux文本处理grep/awk/sed详解](https://blog.csdn.net/neo949332116/article/details/100178245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
shell 获取文件里面每一行/后面的字符串
当然,你也可以使用 shell 命令行来获取文件里面每一行/后面的字符串。你可以使用 awk 命令来实现这个目的。
假设你有一个名为 "file.txt" 的文件,其中包含了多行字符串,你可以使用以下命令获取每一行/后面的字符串:
```shell
awk -F/ '{print $NF}' file.txt
```
这个命令使用 awk 命令,指定分隔符为 '/',然后打印每一行的最后一个字段,即以 '/' 分割后的最后一个字符串。最终输出的结果就是每一行/后面的字符串。
希望这个命令对你有所帮助!