假设我有一个变量
line="This is where we select from a table."
Run Code Online (Sandbox Code Playgroud)
现在我想 grep 有多少次 select 在句子中出现。
grep -ci "select" $line
Run Code Online (Sandbox Code Playgroud)
我试过了,但没有用。我也试过
grep -ci "select" "$line"
Run Code Online (Sandbox Code Playgroud)
它仍然不起作用。我收到以下错误。
grep: This is where we select from a table.: No such file or directory
Run Code Online (Sandbox Code Playgroud) 我有一个文件,f1.txt:
ID Name
1 a
2 b
3 g
6 f
Run Code Online (Sandbox Code Playgroud)
空格数不固定。仅使用一个空格替换所有空格的最佳方法是什么tr?
这是我到目前为止:
cat f1.txt | tr -d " "
Run Code Online (Sandbox Code Playgroud)
但输出是:
IDName
1a
2b
3g
6f
Run Code Online (Sandbox Code Playgroud)
但我希望它看起来像这样:
ID Name
1 a
2 b
3 g
6 f
Run Code Online (Sandbox Code Playgroud)
请尽量避免sed。
我正在尝试使用 awk 从文件中打印,但我的输出为空。到目前为止,这是我的代码
accountNum=$1
while read -r LINE || [[ -n $LINE ]] ; do
awk -F',' '{ if($1==accountNum) { print $3.$2 } }' Accounts
done < Accounts
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
accountNum=$1
while read -r LINE || [[ -n $LINE ]] ; do
echo $LINE | awk -F',' '{ if($1==accountNum) { print $3.$2 } }'
done < Accounts
Run Code Online (Sandbox Code Playgroud)
输入文件是:
1,Doe,John
2,Rooney,Wayne
3,Smith,Will
4,Crow,Russel
5,Cruise,Tom
Run Code Online (Sandbox Code Playgroud)
我运行文件时的预期输出是
$./file.sh 3
Will Smith
Run Code Online (Sandbox Code Playgroud)
但我得到以下
$./file.sh 3
$
Run Code Online (Sandbox Code Playgroud)
那是什么都没有打印出来。我知道使用 cut 的解决方案,但我想使用 awk。
如何检查文件是否有扩展名为 .java 的文件?
到目前为止,我有:
for javaFile in *.java ; do
{
echo "The file $javaFile has : " >> ~/Desktop/externalServers.txt
grep -E '^[^/]{2}.*http' $javaFile >> ~/Desktop/externalServers.txt
grep -E '^[^/]{2}.*ftp' $javaFile >> ~/Desktop/externalServers.txt
echo "----------------------------------------" >> ~/Desktop/externalServers.txt
sed -e "s/[[:space:]]\+/ /g" ~/Desktop/externalServers.txt >> ~/Desktop/externalServersTemp.txt
rm ~/Desktop/externalServers.txt
mv ~/Desktop/externalServersTemp.txt ~/Desktop/externalServers.txt
sed 's/^\n//' ~/Desktop/externalServers.txt >> ~/Desktop/externalServersTemp.txt
rm ~/Desktop/externalServers.txt
mv ~/Desktop/externalServersTemp.txt ~/Desktop/externalServers.txt
} done
Run Code Online (Sandbox Code Playgroud)
但是每次我这样做时,我都会收到错误消息:
grep: *.java: 没有那个文件或目录
基本上我想首先查看文件夹是否有任何 .java 类型的文件,然后只继续执行脚本。
我有一个文件 abc.txt 的内容是
<classpathentry kind="src" path="Sources"/>
<classpathentry kind="con" path="WOFramework/ERExtensions"/>
<classpathentry kind="con" path="WOFramework/ERJars"/>
<classpathentry kind="con" path="WOFramework/ERPrototypes"/>
<classpathentry kind="con" path="WOFramework/JavaEOAccess"/>
<classpathentry kind="con" path="WOFramework/JavaEOControl"/>
<classpathentry kind="con" path="WOFramework/JavaFoundation"/>
<classpathentry kind="con" path="WOFramework/JavaJDBCAdaptor"/>
Run Code Online (Sandbox Code Playgroud)
我想将所有路径复制到另一个文件中。那就是我希望我的输出文本文件看起来像:
WOFramework/ERExtensions
WOFramework/ERJars
WOFramework/ERPrototypes
WOFramework/JavaEOAccess
WOFramework/JavaEOControl
WOFramework/JavaFoundation
WOFramework/JavaJDBCAdaptor
Run Code Online (Sandbox Code Playgroud) 假设我有一个文件结构:
$ cd /home/Desktop
$ ls -d */
Abc/ Qwe/ Zxc/ Rty/
$
Run Code Online (Sandbox Code Playgroud)
现在我想遍历每个目录,看看它们是否有任何“.pdf”文件。有人可以告诉我这样做的最佳方法是什么吗?
我有一个文件 foo.txt
test
qwe
asd
xca
asdfarrf
sxcad
asdfa
sdca
dac
dacqa
ea
sdcv
asgfa
sdcv
ewq
qwe
a
df
fa
vas
fg
fasdf
eqw
qwe
aefawasd
adfae
asdfwe
asdf
era
fbn
tsgnjd
nuydid
hyhnydf
gby
asfga
dsg
eqw
qwe
rtargt
raga
adfgasgaa
asgarhsdtj
shyjuysy
sdgh
jstht
ewq
sdtjstsa
sdghysdmks
aadfbgns,
asfhytewat
bafg
q4t
qwe
asfdg5ab
fgshtsadtyh
wafbvg
nasfga
ghafg
ewq
qwe
afghta
asg56ang
adfg643
5aasdfgr5
asdfg
fdagh5t
ewq
Run Code Online (Sandbox Code Playgroud)
我想打印所有的线qwe和ewq在一个单独的文件。这是我到目前为止:
#!/bin/bash
filename="foo.txt"
#While loop to read …Run Code Online (Sandbox Code Playgroud) 假设我有一个名为 DirectAction 的 Java 类
类中的某些方法具有“action”或“Action”一词
获取具有“Action”或“action”的所有方法的名称并将其写入外部文件的 grep 命令是什么?
例子:
public class DirectAction extends ERXDirectAction {
/**
*
* @param aRequest
*/
public DirectAction(WORequest aRequest) {
}
// ============================================================================================
// ACTIONS
/**
* Default Action
*
*/
@docDirectAction
public WOActionResults defaultAction() {
}
/**
* @return goes to login page for student
*/
@docDirectAction
public WOActionResults studentAction() {
);
return nextPage;
}
/**
* @return goes to Admin login page
*/
@docDirectAction
public WOActionResults adminAction() {
return nextPage;
}
/** …Run Code Online (Sandbox Code Playgroud) 我有一个文件 fileA.txt
Batman.plist
Green Arrow.plist
Hawkgirl.plist
EOPrototypes.plist
Person.plist
EOPrototypes.plist
EOJavellinPrototypes.plist
Sinestro
Slomon Grundy.plist
Batman Beyond.plist
EORedRobin
EORavenPrototypes.plist
Run Code Online (Sandbox Code Playgroud)
现在,如果我想获得的所有线路为此与plist和不包含的字Prototype。到目前为止我有
grep -v "Prototype" fileA.txt | grep -E "*plist$"
Run Code Online (Sandbox Code Playgroud)
输出是
Batman.plist
Green Arrow.plist
Hawkgirl.plist
Person.plist
Slomon Grundy.plist
Batman Beyond.plist
Run Code Online (Sandbox Code Playgroud)
这正是我想要的,
但是有没有更好的方法来做到这一点?
我想查看我所有的 HTML 文件,看看那里是否有任何错误的标签,例如<br>,<hr>等等,也就是说,我想查看 HTML 文件中没有关闭哪些标签。
for htmlFile in `ls -f *.html ` ; do
if `cat $htmlFile | grep -inE "\<br\>"` ; then
echo "In file $htmlFile there are errors on the following lines: " >> ~/Desktop/$1_errors.txt
cat $htmlFile | grep -in "<br>"| cut -d ":" -f1 >> ~/Desktop/$1_errors.txt
echo "----------------------------------------" >> ~/Desktop/$1_errors.txt
fi
done
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误,我怀疑是我的正则表达式。
./script.sh: line 14: 10:<BR: command not found
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误之一:)