這是一個bash腳本的一部分 我想對每行不以數字結尾的內容做一些操作。 我不知道如何引用每行的最後一個字符。如果行的最後一個字符是[0-9]
if lastchar != [0-9]
awk blahblahblah
else
awk blagblag
這是一個bash腳本的一部分 我想對每行不以數字結尾的內容做一些操作。 我不知道如何引用每行的最後一個字符。如果行的最後一個字符是[0-9]
if lastchar != [0-9]
awk blahblahblah
else
awk blagblag
接線員regex
執行過濾器awk
:
awk '/[0-9]$/{ blahblahblah } !/[0-9]$/ {blagblag}'
#!/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
=~
是bash
這似乎沒有工作。我可能把它設置錯了。 #!/ bin/sh for file in $ *; do while read line;做 [[$ line =〜[0-9] $]] || sed's/$/| /' done
這是'bash'而已,這是你自己的標籤dude =)所以'#!/ bin/bash' – 2013-02-22 17:59:46
#!/ bin/bash 而讀線;做 [[$ line =〜[0-9] $]] || sed's/$/| /' done
我想情況下,這個在大多數情況下:
case "$line" in
*[0-9]) awk blahblahblah ;;
*) awk blagblag ;;
esac
但如果你調用AWK反正,那麼純awk的答案可能是最好的。 (除非你有步驟,你沒有說明需要做。)其他答案的
都沒有明確地提到了這一點:
我不知道如何引用每個的最後一個字符線。
regular expression
一個匹配的模式:line ends in number
可使用[0-9]$
構建[匹配0
和9
之間任何東西,然後是end-of-line
($
是end-of-line anchor
)]。
beginning-of-line
的錨是^
。
這是完美的,它補償了我在bash腳本中的無能!謝謝 – 2013-02-22 18:30:09