bin*_*281 31 linux bash shell character
我有一个正在运行和使用的脚本
lspci -s 0a.00.1
Run Code Online (Sandbox Code Playgroud)
这回来了
0a.00.1 usb controller some text device 4dc9
Run Code Online (Sandbox Code Playgroud)
我希望得到最后4个字符内联
lspci -s 0a.00.1 | some command to give me the last 4 characters.
Run Code Online (Sandbox Code Playgroud)
Die*_*ego 79
怎么样tail
,用-c
开关.例如,要获取"hello"的最后4个字符:
echo "hello" | tail -c 5
ello
Run Code Online (Sandbox Code Playgroud)
请注意,我使用了5(4 + 1),因为添加了换行符echo
.正如下面的Brad Koch所建议的,用于echo -n
防止添加换行符.
Joh*_*web 17
你真的想要最后四个角色吗?看起来你想要最后一行"单词":
awk '{ print $NF }'
Run Code Online (Sandbox Code Playgroud)
如果ID为3个字符或5,则此方法有效.
使用sed
:
lspci -s 0a.00.1 | sed 's/^.*\(.\{4\}\)$/\1/'
Run Code Online (Sandbox Code Playgroud)
输出:
4dc9
Run Code Online (Sandbox Code Playgroud)
试试这个,比如字符串是否存储在变量foo中.
foo=`lspci -s 0a.00.1` # the foo value should be "0a.00.1 usb controller some text device 4dc9"
echo ${foo:(-4)} # which should output 4dc9
Run Code Online (Sandbox Code Playgroud)