使bash从.txt文件中输出特定单词
我对Bash有一个问题: 正如标题所说,我需要bash输出某个单词,具体取决于它在文件中的位置。在我的显式示例中,我有一个简单的.txt文件 我已经发现,您可以使用以下命令计算文件中的字数:使bash从.txt文件中输出特定单词,bash,Bash,我对Bash有一个问题: 正如标题所说,我需要bash输出某个单词,具体取决于它在文件中的位置。在我的显式示例中,我有一个简单的.txt文件 我已经发现,您可以使用以下命令计算文件中的字数: wc -w < myFile.txt 当然还有一种方法可以使“cat”只显示单词x。比如: cat myFile.txt | wordno. 3125 desired-word cat myFile.txt | characterno. 2342 desired-character 请注意,我将
wc -w < myFile.txt
当然还有一种方法可以使“cat”只显示单词x。比如:
cat myFile.txt | wordno. 3125
desired-word
cat myFile.txt | characterno. 2342
desired-character
请注意,我将欢迎任何能够完成此任务的命令,而不仅仅是cat
或者,或者另外,我很高兴知道如何根据角色在文件中的位置在文件中显示某些角色。比如:
cat myFile.txt | wordno. 3125
desired-word
cat myFile.txt | characterno. 2342
desired-character
我已经知道如何通过变量实现这一点:
a="hello, how are you"
echo ${a:9:1}
w
唯一的问题是变量只能这么长。如果它是一个完整的.txt文件,它就不会工作
我期待你的回答 您可以使用
awk
进行此作业,它在空格处拆分字符串并打印$wordnumber
stringpart,并且tr
用于删除换行符
cat myFile.txt | tr -d '\n' | awk -v wordnumber=5 '{ print $wordnumber }'
如果你想要第五个例子。你可以这样做
head -c 5 myFile.txt | tail -c 1
您可以使用
awk
进行此作业,它在空格处拆分字符串并打印$wordnumber
stringpart,并且tr
用于删除换行符
cat myFile.txt | tr -d '\n' | awk -v wordnumber=5 '{ print $wordnumber }'
如果你想要第五个例子。你可以这样做
head -c 5 myFile.txt | tail -c 1
目瞪口呆:
awk 'BEGIN{RS="[[:space:]]+"} NR==12345' file
或
我将记录分隔符设置为包含换行符的空格序列,然后打印12345
th记录
要提高平均性能,您可以在找到匹配项后退出脚本:
gawk 'BEGIN{RS="[[:space:]]+"}NR==12345{print;exit}' file
目瞪口呆:
awk 'BEGIN{RS="[[:space:]]+"} NR==12345' file
或
我将记录分隔符设置为包含换行符的空格序列,然后打印12345
th记录
要提高平均性能,您可以在找到匹配项后退出脚本:
gawk 'BEGIN{RS="[[:space:]]+"}NR==12345{print;exit}' file
由于您没有显示输入文件或预期输出的示例,因此无法对其进行测试。您可以简单地使用
awk
来实现这一点,下面就是一个例子
awk 'FNR==1{print substr($0,2342,1);next}' Input_file
在这里,我们告诉
awk
查找第1行FNR==1
,在substr
中,我们告诉awk
获取字符2342
,下一个1
意味着从该位置仅获取1个字符,您可以根据需要增加其值或保留它。因为您没有显示示例输入\ U文件或预期输出的错误,因此无法对其进行测试。您可以简单地使用awk
来实现这一点,下面就是一个例子
awk 'FNR==1{print substr($0,2342,1);next}' Input_file
在这里,我们告诉
awk
查找第1行FNR==1
,在substr
中,我们告诉awk
获取字符2342
,下一个1
意味着从该位置仅获取1个字符,您可以根据需要增加其值或保留它。对不起,这一点并不清楚,请添加更多信息,然后让我们知道?抱歉,这一点不清楚,请添加更多信息,然后让我们知道?@wiomoc,您无需为此使用这么多命令,awk
可以轻松处理awk
可以读取文件本身。注意:您可以使用tr-d'\n'
。所有shell都支持输入重定向。除此之外,除非这些行被包装在您想要的输入文件中tr'\n'
而不是-d
@wiomoc,否则您不需要为此使用这么多命令,awk
可以轻松地处理它awk
可以读取文件本身。注意:您可以使用tr-d'\n'
。所有shell都支持输入重定向。除此之外,除非行被包装在输入文件中,否则您需要tr'\n'
而不是-d
。