我需要解析HTML文件并删除除锚标记之外的所有内容.例如:
<html>
    <body>
        <p>boom</p>
        <a href="/blah" rel="no-follow">Example</a>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)
我只需要保持:
<a href="/blah" rel="no-follow">Example</a>
Run Code Online (Sandbox Code Playgroud)
我正在使用cURL来检索html和我发现的一小段代码,除了标签的锚文本之外.这就是我正在使用的:
curl http://www.google.com 2>&1 | perl -pe 's/\<.*?\>//g'
Run Code Online (Sandbox Code Playgroud)
有一个简单的命令行方式来做到这一点?我的最终目标是将其放入bash脚本并执行它.我很难理解正则表达式和perl.
我想要grep独特的路线。这是文件内容:
this is line 1
this is line 1
this is line 2
this is line 1
this is line 1
Run Code Online (Sandbox Code Playgroud)
我只想输出this is line 2到我的外壳。我怎样才能做到这一点?
我是优雅单行的忠实粉丝.我正在尝试编写一个单行测试,在执行http请求和搜索后输出"pass"或"fail".我尝试过这样的事情:
curl "http://haystack.io" | sed 's/.*?needle.*/PASS/' || echo FAIL
Run Code Online (Sandbox Code Playgroud)
......但这不会失败.
还尝试过:
curl "http://haystack.io" | if [$(grep -oE "needle") = "needle"]; then echo PASS; else echo FAIL; fi
Run Code Online (Sandbox Code Playgroud)
...但我无法正确理解语法.
我怎样才能做到这一点?
cat > abc.txt <<EOF
2014-04-11 00:00:00
2014-02-19 00:22:00
EOF
Run Code Online (Sandbox Code Playgroud)
当我执行
grep -E :[0-9]{2}: abc.txt
Run Code Online (Sandbox Code Playgroud)
我明白了
2014-02-19 00:22:00
Run Code Online (Sandbox Code Playgroud)
我在期待
2014-04-11 00:00:00
2014-02-19 00:22:00
Run Code Online (Sandbox Code Playgroud)
这发生在鱼壳(2.4.0)上,在bash上工作正常.我对这里发生的事情非常感兴趣
我有一个这种格式的文件,problem.txt:
StarBonds
? | 356 Positions | Gain: H$59,834,200 (15.26%)
Security    Shares  &   Paid    Current     Today   ?   Value   Gain / Loss     ±
AANDE   20,000  !|!     H$26.35     H$29.84     H$0.08      H$596,800   H$69,800    13%
ABASS   20,000  !|!     H$51.68     H$51.29     -H$0.27         H$1,025,800     -H$7,800    -0%
ABRAG   20,000  !|!     H$39.65     H$44.98     -H$0.13     ?   H$899,600   H$106,600   13%
ABRES   20,000  !|!     H$49.62     H$45.26     -H$0.40         H$1,079,600     H$87,200    8%
Run Code Online (Sandbox Code Playgroud)
我想删除所有不以2-5字符,所有大写字母标识符开头的行.
在grep的命令行中,它只向我显示那些行而不是"垃圾行"(前面四个例子中的前四行).即我想要的结果.$ grep'^ [A-Z0-9] [A-Z0-9] +'problem.txt
AANDE   20,000  !|!     H$26.35     H$29.84     H$0.08      H$596,800   H$69,800    13%     
ABASS   20,000  !|!     H$51.68     H$51.29     -H$0.27 …Run Code Online (Sandbox Code Playgroud) 我正在使用ps查找创建为执行命令“ sleep 1234&”的进程的pid,我将结果复制为仅匹配“ sleeping 1234”。
ps -A -f | grep "sleep 1234"
Run Code Online (Sandbox Code Playgroud)
但是,它本身也与命令“ grep sleep 1234”匹配,返回两行而不是一行。如何为grep编写模式以排除单词“ grep”本身?
谢谢
假设我有一个名为的文件'test.txt':
>reference1
fooHappybar
>reference2
fooBirthdaybar
Run Code Online (Sandbox Code Playgroud)
我需要一个grep命令,将捕获的字符串foo和bar线直接在比赛上面,和.该命令应该导致以下输出:
>reference1
Happy
>reference2
Birthday
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止:
grep -oP 'foo\K\w+(?=bar)' test.txt
Run Code Online (Sandbox Code Playgroud)
这使:
Happy
Birthday
Run Code Online (Sandbox Code Playgroud)
我知道grep -B 1在比赛前输出比赛和线路.我试过了:
grep -oP -B 1 'foo\K\w+(?=bar)' test.txt
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
任何指导表示赞赏.
编辑:
awk如果我有这个文件,命令将如何改变?
>reference1
AGTCTGCAFOOHAPPYBARGTACAC
>reference2
GTACAFOOBIRTHDAYBARGACCAT
Run Code Online (Sandbox Code Playgroud)
预期产量:
>reference1
HAPPY
>reference2
BIRTHDAY
Run Code Online (Sandbox Code Playgroud) enter code here我有一个包含序列的 fasta 文件
>lcl|QCYY01003067.1_cds_ROT65593.1_2 
ATGCGTCTCCCCTTTAGAGAGTTCTCTCTAGCTACGTA
>lcl|QCYY01003067.1_cds_ROT65593.1_3
ATCTCTNNNNNNNNNNATATCCCCTTTNNNNNCTCTCT
>lcl|QCYY01003067.1_cds_ROT65593.1_4
ATCTCTNNNNNNNNNNATATCCCCTTCTCGGGGCCCC 
Run Code Online (Sandbox Code Playgroud)
我想计算“N”的数量以及每行中出现的模式数量。无需包含标题 (>lcl|QCYY01003067.1_cds_ROT65593.1_2 )
例如:-
 line 2=0,0
 line 4=15,2
 line 6=10,1
Run Code Online (Sandbox Code Playgroud)
如何改进此代码:
grep -n '[{N}]' <filename> | cut -d : -f 1 | uniq -c
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的文件:
dog
cat
dog
dog
fish
cat
Run Code Online (Sandbox Code Playgroud)
我想在 Bash 中编写某种代码来使文件格式化为:
dog:1
cat:1
dog:2
dog:3
fish:1
cat:2
Run Code Online (Sandbox Code Playgroud)
关于如何做到这一点的任何想法?该文件非常大(> 30K 行),所以代码应该有点快。
我在想某种循环......
像这样:
while read line; 
     echo "$line" >> temp.txt
     val=$(grep $line temp.txt)
     echo "$val" >> temp2.txt
done < file.txt 
Run Code Online (Sandbox Code Playgroud)
进而 paste -d ':' file1.txt temp2.txt
但是,我担心这会很慢,因为您要逐行进行。其他人怎么看?
我想打扮我正在做的 grep 的输出。
想象一个包含大量文本的文件 text.txt。然后我执行以下命令:
grep fred text.txt | wc -l
grep bob text.txt | wc -l
grep james text.txt | wc -l
Run Code Online (Sandbox Code Playgroud)
我得到输出:
12
3
4
Run Code Online (Sandbox Code Playgroud)
我想打印的输出是:
fred was found on 12 lines.
bob was found on 3 lines.
james was found on 4 lines.
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?