这是bash脚本的一部分 我想对每个不以数字结尾的行做点什么。 我不知道如何引用每一行的最后一个字符。
if lastchar != [0-9]
awk blahblahblah
else
awk blagblag
答案 0 :(得分:3)
在awk
:
awk '/[0-9]$/{ blahblahblah } !/[0-9]$/ {blagblag}'
答案 1 :(得分:2)
#!/bin/bash
while read line; do
[[ $line =~ [0-9]$ ]] || awk blah
done < file.txt
或者:
#!/bin/bash
while read line; do
if [[ $line =~ [0-9]$ ]]; then
awk blah
else
awk anotherblah
fi
done < file.txt
=~
是regex
bash
的运算符
答案 2 :(得分:1)
在大多数情况下,我喜欢这样的情况:
case "$line" in
*[0-9]) awk blahblahblah ;;
*) awk blagblag ;;
esac
但是如果你正在调用awk,那么纯awk答案可能是最好的。 (除非你有步骤,否则你没有表明需要完成。)
答案 3 :(得分:0)
其他答案都没有明确提到这一点:
我不知道如何引用每行的最后一个字符。
匹配模式的regular expression
:line ends in number
可以使用[0-9]$
构建[匹配0
和9
之间的任何内容,然后是{{1 (end-of-line
是$
)]。
end-of-line anchor
的锚点是beginning-of-line
。