variables - 在 csh 中,如何使用变量修饰符从“a/b/c/”生成“a/b”?
问题描述
当 x 包含最后包含 / 的目录名称时,如何删除最后一个路径,包括 csh 中的 / 模式?
这是一个例子。
% set x=a/b/c
% echo $x:h
a/b
% set x=a/b/c/
% echo $x:h
a/b/c
所以当x是“a/b/c/”时,我想做“a/b”。如何使用变量修饰符来做到这一点?(在 csh 中)
我也很好奇如何在 bash 中做到这一点。${x%/ } 将生成“a/b/c”,而 ${x%%/ } 将生成“a”。
ADD :当然我可以预处理输入文件以在末尾删除 / ,例如 sed -e '1,$s/\/$//g' file > file.1; \mv file.1 file' 但我很好奇是否可以使用变量修饰符。
解决方案
dirname(1)
您可以通过以下任何方式捕获输出csh
:
$ dirname a/b/c
a/b
$ dirname a/b/c/
a/b
推荐阅读
- c# - 无法投射到界面
- c - 使用 atoi 将 argv[1] 读入说“key”。应该只接受 int。如果输入像 3g 这样的非整数,我该如何拒绝是非整数
- python - 展开递归表达式
- video - ffmpeg 现在是否支持动态重新配置过滤器图?
- python - 找不到接受参数 ''User\desktop\sample_project_1\env' 的位置参数
- vue.js - 根据 vuejs 中的计算属性动态显示和隐藏按钮
- git - 查找 2 组 git 提交之间的相同差异
- xml - 我如何使用 XQUERY 根据策略和基于下面 XML 中的 instno 对净金额求和
- javascript - 如何在html中迭代列表并动态添加行
- c# - Discord.net 问题创建、添加和删除角色