我有一个文本文件,其中包含该文件的文件名和标签
示例字符串:
0-3081031014094495-0.png 0
我正在使用此命令迭代文本文件并获取最后一个字符。
while IFS= read -r line; do
echo $line | tail -c 2
done <$PWD/$i/caffe/test.txt
Run Code Online (Sandbox Code Playgroud)
我还想获得最后一个字符之前的所有内容。我将echo $line | head -c -2其解释为:
从头开始并获取所有内容,直到最后两个字符
编辑:
感谢您提供这么多非常快速的答案。我在原来的问题中没有提到的是我正在使用 Mac。我认为这并不重要,但尝试了你的一些答案后我意识到这很重要。
例如,Mac 上不支持使用负子字符串。詹姆斯·布朗的解决方案是第一个对我有用的解决方案,所以这就是我接受他的答案的原因。
要获取 bash 中最后一个字符之前的所有内容:
$ foo="0-3081031014094495-0.png 0"
$ echo ${foo%?}
0-3081031014094495-0.png
Run Code Online (Sandbox Code Playgroud)
来自http://tldp.org/LDP/abs/html/string-manipulation.html:
${字符串%子字符串}
从$string后面删除$substring的最短匹配。
| 归档时间: |
|
| 查看次数: |
3432 次 |
| 最近记录: |