![查看所有 Bash/Shell 脚本相关的常见问题解答](https://www.alaica.com/wp-content/uploads/linux-19.png)
我有一个文件,如下所示:
foo bar
汤姆·杰瑞
UNIX Linux
每个单词和/或 Linux 都有不同的长度。如何仅在 Linux 或类 Unix 系统上使用 bash 或 ksh shell 删除或删除每行的最后一个字符?[donotprint]
教程详情 | |
---|---|
难度级别 | 简单的 |
根权限 | 不 |
要求 | 没有任何 |
美东时间。阅读时间 | 1分钟 |
[/不打印]
您可以使用以下任一命令:
- Bash/ksh shell 替换
- 剪切命令
- 头命令
- 尾部命令
Bash/ksh shell 替换示例
从行或单词中删除最后一个字符的语法如下:
x = "foo bar" echo " ${x%?} "
输出示例:
福巴
%是 bash 参数替换运算符,它从最短的后(结束)模式中删除。您可以使用bash while 循环,如下所示:
#!/bin/bash while IFS = read -r line do echo " ${line%?} " # 或将更新的行放入新文件 #echo "${line%?}" >> /tmp/newfile done < “/路径/到/文件”
剪切命令示例
语法如下:
## 如果 STRING 的长度为 3,则传递 2 作为字符位置 echo "foo" | cut -c 1 - 2 ## 如果 STRING 的长度为 14,则传递 13 作为字符位置 echo "example Linux" | 剪切 -c 1 - 13
也可以看看:
- 操作方法:像专业人士一样使用 Bash 参数替换
# James K 的补充修正;VG 编辑 –日志#