我正在尝试使用grep自动在用户的bin文件夹中找到bibtex程序.
问题是,它经常返回名为bibtex的目录,这意味着脚本无法自动运行该命令.
如何强制grep(或者确实是locate命令)自动忽略目录?
编辑:当前命令是: locate bibtex | grep "/bibtex$" -d skip | head -n1
正如它在描述中所说的那样.我首先检查我们的数据库是最新的
mh547:bin crashandburn4$ sudo /usr/libexec/locate.updatedb
Password: #password entered and function executed without errors
Run Code Online (Sandbox Code Playgroud)
然后我尝试在我的Documents文件夹中搜索某些内容
mh547:bin crashandburn4$ cd ~/Documents/
mh547:Documents crashandburn4$ ls
Mamp_workspace/ Scenarios.docx gc01/
mh547:Documents crashandburn4$ locate Scenarios.docx #nothing returned
Run Code Online (Sandbox Code Playgroud)
然后我尝试另一个随机文件夹:
mh547:Documents crashandburn4$ cd ..
mh547:~ crashandburn4$ ls
Applications/ Movies/ drawable/ untitled-2.pdf
Desktop/ Music/ drawable-xhdpi/ untitled-2.synctex.gz
Documents/ Pictures/ dwhelper/ untitled-2.tex
Downloads/ Public/ linux_ssh* website-terminal-copy-paste
Dropbox/ Samsung/ scripts/ workspace/
Google Drive/ Sites/ untitled-2.aux workspace_copy_to_linux*
Library/ android-sdks/ untitled-2.log
mh547:~ crashandburn4$ locate website-terminal-copy-paste
/Users/crashandburn4/website-terminal-copy-paste #correct result returned
Run Code Online (Sandbox Code Playgroud)
谁能帮我?我已经坚持了半个小时左右.
D6教授.
以前我们使用DBISAM和DBISAMTable.处理RecNo,它可以很好地修改(删除,编辑等).
现在我们替换为不处理RecNo的ElevateDB,很多时候我们使用Queries,而不是Tables.
查询必须重新打开以查看修改.
但是如果我们重新打开查询,我们需要重新定位到最后一条记录.定位是不够的,因为Grid在另一行中显示它.这是非常令人不安的事情,因为在修改记录进入另一行后,你很难遵循它,用户讨厌这个.
我们发现此代码:
function TBaseDBGrid.GetActRow: integer;
begin
Result := -1 + Row;
end;
procedure TBasepDBGrid.SetActRow(aRow: integer);
var
bm : TBookMark;
begin
if IsDataSourceValid(DataSource) then with DataSource.DataSet do begin
bm := GetBookmark;
DisableControls;
try
MoveBy(-aRow);
MoveBy(aRow);
//GotoBookmark(bm);
finally
FreebookMark(bm);
EnableControls;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
最初的例子是使用moveby.这与Queries工作得很好,因为我们无法看到Query在后台重新打开,可视控件没有改变行位置.
但是当我们有EDBTable或Live/Sensitive Query时,MoveBy使用起来很危险,因为如果有人删除或追加新行,我们可以重新定位到错误的记录中.
然后我尝试使用BookMark(见注释).但是这种技术不起作用,因为它在另一个Row位置显示记录......
所以问题是:如何在DBGrid中强制行位置和记录?
或者,在基础DataSet刷新后,哪种DBGrid可以重定位到记录/行?
我搜索用户友好的解决方案,我理解他们,因为我试图使用这个跳过DBGrid,并且使用非常糟糕,因为我的眼睛在更新后试图找到原始记录时出现... :-(
感谢您的每一个帮助,链接,信息:dd
我希望能够在给定字体名称(如果存在)时获取Linux上ttf字体文件的绝对路径.是否有返回该信息的命令或API?
例如,给定"arial.ttf"我想在任何地方找到绝对路径(例如/usr/share/fonts/truetype/msttcorefonts/arial.ttf).
我试图用locate命令找到一个文件.
它表现出一些奇怪的模式,至少不喜欢ls或find命令.
我做以下事情:
sh@sh:~$ locate rhythmdb
/home/sh/.local/share/rhythmbox/rhythmdb.xml
sh@sh:~$ locate "rhyth*"
sh@sh:~$ locate 'rhyth*'
sh@sh:~$ locate rhyth*
Run Code Online (Sandbox Code Playgroud)
(截图)
在我的拙见中,它应该找到使用星号的时候,但事实并非如此.
有什么不对?
在终端窗口中,如何使用该命令locate仅返回存在整个单词的结果。
例如,我正在查找与 GO lang 相关的所有文件。然而,输入locate go会返回从实际 GO 文件到诸如 Algorithm.php 之类的所有内容。
有没有办法让这个命令只返回整个单词匹配的结果?
我们如何使用delphi Tadotable中的计算字段使用locate函数或相同的操作函数?这样的事情
SampleAdotable.locate('samplefield',text,[lopartialkey]);
其中samplefield是SampleAdotable中的计算字段.在正常情况下,会创建此消息的异常:
Item can not be found in the collection corresponding to the requested name or ordinal
Run Code Online (Sandbox Code Playgroud)
谢谢
这个问题在很多地方都有人提出,但也有很多细微的差别。(例如Java - getClassLoader().getResource() 让我发疯等。)我仍然无法让它工作。
这是一个代码片段:
String clipName = "Chook.wav";
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
// URL url = classLoader.getResource(clipName);
URL url = new URL("file:///Users/chap/Documents/workspace/the1620/bin/ibm1620/" + clipName);
ais = AudioSystem.getAudioInputStream(url);
Run Code Online (Sandbox Code Playgroud)
这是有效的 - 请注意,我已经硬编码了包含剪辑文件的目录的路径,该文件就在那里,并且与我的 .class 文件位于同一目录中。唉,注释掉的代码只是返回 url 的空值。
大多数其他帖子似乎都涉及 getResourceAsStream()。我想我应该使用 getResource() 。这有区别吗?
它不可能这么难。有什么线索吗?
有一个由自动化流程填充的表格,其中包含来自第三方提要的数千家公司名称。大多数公司名称只是名称,但有些公司名称后面有一个连字符。我正在尝试做一个只会返回公司名称的选择。现在我有两个疑问:
SELECT DISTINCT vendor FROM feed_data;
SELECT DISTINCT SUBSTRING(vendor, 1, LOCATE(' - ', vendor)) FROM feed_data;
Run Code Online (Sandbox Code Playgroud)
第一个查询给了我一切,第二个查询只给了我有连字符的公司名称。我正在寻找一种方法来获得两者。
样本数据:
vendor:
American Widgets
Bravo Widgets - The best widgets money can buy
Run Code Online (Sandbox Code Playgroud)
此外,此查询实际上是填充菜单的较大查询的子查询部分,因此可能会限制可能的解决方案。
假设我想查找/Pathnamed中的所有文件file_name*.简单:
$ find /Path -name "file_name*"
/Path/foo1/file_name1.txt
/Path/foo2/file_name2.txt
/Path/bar3/file_name3.txt
/Path/bar4/file_name4.txt
Run Code Online (Sandbox Code Playgroud)
如果我只想搜索子目录bar怎么办?
我可以管理结果,但这非常低效.
$ find /Path -name "file_name*" | grep "bar"
/Path/bar3/file_name3.txt
/Path/bar4/file_name4.txt
Run Code Online (Sandbox Code Playgroud)
有没有办法让他们全部进入find并跳过搜索不匹配的目录bar?
注意:如果我搜索/Path/bar3具体结果立即回来.但是,如果我只是搜索/Path,然后grep为bar它需要30-60秒.这就是为什么grep不能接受管道.