我只想从名为idsxx.txt
的文件中的一行中获取MAC地址之前的文本。
文件内容:
ComPuteer AA A AA:Bb:CC:DD:EE:FF Some /7 Info
ComPuteRb CC:DD:EE:FF:Aa:CC Some Info &&7 About
CompuY Third CC:CC:CC:CC:CC:CC Some Infoz &(/)
我想要的方式:
ComPuteer AA A
ComPuteRb
CompuY Third
我想要一个像这样在线工作的解决方案:
cat idsxx.txt | while read line
do
#working on $line
done
它可以像可变替代一样好
尝试:
cat idsxx.txt | while read line
do
shortline=${line%% ??:??:??:??:??:*}
#working on $shortline
done
这个解决方案还包括您正在处理的变量的第一个输入行的单独A
删除匹配模式及其后的所有内容。
sed -r 's/([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}.*//' idsxx.txt
您可以使用处理输出
while read -r line; do
echo "line=${line}"
done < <(sed -r 's/([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}.*//' idsxx.txt)