Bash从字符串/行/单词中删除最后一个字符
时间:2020-01-09 10:37:24 来源:igfitidea点击:
我有一个看起来如下的文件:
foo bar tom jerry UNIX Linux
每个词和/或Linux的长度不同。仅在Linux或类似Unix的系统上,如何使用bash或ksh shell从每行中去除或删除最后一个字符?可以使用以下任何命令:
- Bash/ksh shell替换
- cut命令
- head命令
- tail命令
Bash/ksh Shell替换示例
从行或单词中删除最后一个字符的语法如下:
x="foo bar" echo "${x%?}"
输出示例:
foo ba
%是bash参数替换运算符,可从最短的尾部(结束)模式中删除。
您可以按以下方式使用bash while循环:
#!/bin/bash while IFS= read -r line do echo "${line%?}" # or put updated line to a new file #echo "${line%?}" >> /tmp/newfile done < "/path/to/file"
剪切命令示例
语法如下:
## if length of STRING is 3, pass 2 as character positions echo "foo"| cut -c 1-2 ## if length of STRING is 14, pass 13 as character positions echo "theitroad Linux" | cut -c 1-13