我不习惯使用bash脚本的语法。我试图读取文件。对于每一行,我只想在分隔符' /'之前保留字符串的一部分。如果单词尊重特定长度,则将其放回新文件中。我已下载字典,但格式不符合我的期望。由于有84000个单词,我真的不想手工删除' /'之后的内容。对于每个单词。我虽然这很容易,但我在这个网站上的其他类似问题中也有一些想法,但似乎我在某个地方遗漏了某些东西,因为它仍然没有用。我无法确定正确的长度。文件Test_Input每行包含一个单词。这是代码:
#!/usr/bin/bash
filename="Test_Input.txt"
while read -r line
do
sub= echo $line | cut -d '/' -f1
length= echo ${#sub}
if $length >= 4 && $length <= 10;
then echo $sub >> Test_Output.txt
fi
done < "$filename"
答案 0 :(得分:0)
有几个项目:
sub= echo $line | cut -d '/' -f1
,因为这肯定会失败。或者,您也可以使用sub=$()
,如$(echo $line | cut -d '/' -f1)
if
条款中的条件需要包含在单个或双[]
中,如下所示:if [[ $length -ge 4 ]] && [[ $length -le 10 ]];
<=
在bash中无法可靠地工作。只需使用-ge
代替&#34;大于或等于&#34;和-le
for&#34; less or equal&#34;。/
字符,则您的版本sub
将包含整行。这可能不是您想要的,因此我建议您还将-s
标记添加到cut
。somevar=$(echo $someothervar)
。只需使用somevar=$someothervar
这是一个有效的版本:
#!/usr/bin/env bash
filename="Test_Input.txt"
while read -r line
do
sub=$(echo $line | cut -s -d '/' -f 1)
length=${#sub}
if [[ $length -ge 4 ]] && [[ $length -le 10 ]];
then echo $sub >> Test_Output.txt
fi
done < "$filename"
当然,您也可以使用sed
:
sed -n -r '/^[^/]{4,10}\// s;/.*$;;p' Test_Input.txt > Test_Output.txt
说明:
-n
除非明确标记为打印,否则不要打印任何内容。-r
使用扩展的正则表达式/<searchterm>/ <operation>
搜索符合特定条件的行,然后执行以下操作:
^[^/]{4,10}\/
从行的开头,应该有4到10个非斜杠字符,后跟斜杠s;/.*$;;p
用任何东西替换第一个斜杠和行尾之间的所有内容,然后打印。答案 1 :(得分:0)
<select class="selectpicker" data-live-search="true" id="company" data-size="5" title="Dove Sei?" data-width="100%">
<option data-tokens="Dove sei?" value="Dove Sei?" id="Dove Sei?" selected>Dove sei?</option>
<option data-tokens="another" id="another" value="another" data-picture="another.png">another</option>
<option data-tokens="another" id="another" value="another" data-picture="another.png">another</option>
<option data-tokens="another" id="another" value="another" data-picture="another.png">another</option>
</select>
<ul class="list-group" style="text-align: center;">
<li class="list-group-item" style="border-style: none;"><h4>Servizio</h4>
<div class="btn-group">
<button id="buttonSurvey" type="submit" class="btn btn-default" data-toggle="modal" data-target="#voteReg" name="survey1" value="green" onclick="getVote(this.value)" style="border: none;"><img src="Q1.png}" class="Vote"></button>
<button id="buttonSurvey" type="submit" class="btn btn-default" data-toggle="modal" data-target="#voteReg" name="survey1" value="green" onclick="getVote(this.value)" style="border: none;"><img src="Q2.png}" class="Vote"></button>
</div></li>
是此
awk