如何通过Unix命令在cut输出结果末尾追加斜杠/字符?
实现命令输出末尾追加指定字符的Unix方案
原命令echo 20220506 | cut -c5-6执行后,cut提取到的05会自带尾随换行符,直接拼接/会出现字符换行问题,以下是可稳定输出05/的可行命令:
方案1:
xargs+printf格式化输出(兼容性好、写法简洁)
利用xargs自动剥离输入首尾空白(含末尾换行)的特性,将提取到的05传给printf,按格式拼接/后输出,不会产生多余换行:echo 20220506 | cut -c5-6 | xargs printf "%s/"方案2:
tr删除换行后拼接字符
先用tr命令删除cut输出末尾的换行符,再输出/,注意echo要加-n参数避免自动追加新换行:echo 20220506 | cut -c5-6 | tr -d '\n' && echo -n '/'方案3:
awk一步完成截取与拼接
无需额外调用cut,直接用awk内置的字符串截取函数拿到目标片段,拼接/后通过printf输出(printf默认不追加换行):echo 20220506 | awk '{printf "%s/", substr($0,5,2)}'
提示:部分老旧Unix系统的
echo实现不支持-n参数,生产环境优先选择方案1、方案3适配性更强。
内容的提问来源于stack exchange,提问作者noob
相关产品推荐
相关产品推荐

