如何通过Shell命令调整文本格式:为连字符添加前置空格
解决方案
你可以通过以下Shell命令实现目标格式:
echo "🎉$(cat file.txt | tr '\r\n' ' ' | sed 's/^- //')"
命令说明:
cat file.txt | tr '\r\n' ' ':将文件中的所有换行符(含Windows格式的回车符\r)替换为空格,此时输出为- the quick brown - fox jumps over - the lazy dog;sed 's/^- //':移除内容开头的-,得到the quick brown - fox jumps over - the lazy dog;- 最后通过
echo将🎉前缀与处理后的内容拼接,生成你需要的最终格式。
如果偏好更简洁的awk实现,也可以用:
echo "🎉$(awk '{printf "%s", NR==1 ? substr($0,3) : " - " substr($0,3)}' file.txt)"
awk命令说明:
awk逐行处理文件:
- 对第一行(
NR==1),截取从第3个字符开始的内容(跳过开头的-); - 对后续行,先输出
-再截取第3个字符开始的内容; - 所有内容通过
printf直接拼接输出,无需额外处理换行。
内容的提问来源于stack exchange,提问作者Nhan
相关产品推荐
相关产品推荐

