我需要一种方法来获取所需的文件路径,如下所述:
示例:
文件路径:(所需输入)
Map<K,C>
现在,我想将路径打印到import win32gui, win32api, win32con, time
def clickMouse():
print('Clicking Mouse')
flags, hcursor, (mousex,mousey) = win32gui.GetCursorInfo()
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,mousex,mousey,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,mousex,mousey,0,0)
while 1:
print('Looping')
if win32api.GetAsyncKeyState(ordz('Z')):
clickMouse()
time.sleep(0.5)
目录。
喜欢:(预期输出)
/root/tmp/uname/abc.txt
/root/tmp/uname/abc/abc.txt
/root/uname/abc.txt
需要提取路径直到任何所需的目录。
答案 0 :(得分:1)
变量替换${var%pattern}
生成var
的值,并删除了匹配pattern
的后缀。
for p in /root/tmp/uname/abc.txt /root/tmp/uname/abc/abc.txt /root/uname/abc.txt
do
echo "${p%/uname*}/uname"
done
还有${var#pattern}
删除任何匹配的前缀。
如果路径位于文件中,请使用while read
代替for
循环。
while read -r p; do
echo "${p%/uname*}/uname"
done <file
......虽然在这种情况下,sed 's%\(/uname\)/.*%1%' file
会更简单,更快捷。
答案 1 :(得分:0)
假设文件temp1.txt
包含
root@nviewsrvr ~Competitive ] cat temp1.txt
/root/tmp/uname/abc.txt
/root/tmp/uname/abc/abc.txt
/root/uname/abc.txt
以下脚本从此文件中获取输入并为您提供所需的结果。
#!/bin/bash
cat temp1.txt|while read LINE
do
for p in `echo ${LINE}`
do
echo "${p%/uname*}/uname"
done
done
结果:
[xvishuk@ecamolx1820 ~/Competitive]$ ./forUname.sh
/root/tmp/uname
/root/tmp/uname
/root/uname
我已将文件硬编码为temp1.txt
,您可以将它们作为参数传递给脚本。