我有一个名为 adrese.csv 的文件,其中包含另一个名为 rezultate2.txt 的文件的第一行。例如:
www.afahc.ro/ro/rcic/simpozion/Simpozion_13/first_call.html
www.anmb.ro/ro/files/bric/mars_bric_2008/corespondente.html
www.anmb.ro/ro/files/bric/mars_bric_2011/corespondente.html
www.anmb.ro/ro/files/bric/mars_bric_2015/corespondente.html
www.anmb.ro/ro/files/bric/mars_bric_2017/corespondente.html
www.anmb.ro/ro/files/erasmus/parteneriate.html
www.anmb.ro/ro/files/studenti/ccoc/1/obiective.html
www.anmb.ro/ro/files/studenti/ccoc/2/servicii.html
www.anmb.ro/ro/files/studenti/ccoc/3/aspecte.html
文件rezultate2.txt除了这些第一行之外还包含一批文本,其中包含单词“放弃”。我需要对 rezultate2.txt 上以 adrese.csv 中的字符串开头的每一行运行 grep -E -o ".{0,50}abandon.{0,50}"
并将所有内容输出到文件(最好是 CSV)。我尝试了不同的命令,但没有任何效果。
示例rezultate2.txt
2345678abcd www.utm.ro/proiecte-europene/despre-pos-dru/index.html-
www.utm.ro/proiecte-europene/despre-pos-dru/index.html-
www.utm.ro/proiecte-europene/despre-pos-dru/index.html:Axa prioritară 2 finanţează activităţi care urmăresc facilitarea tranziţiei de la şcoală la viaţa activă prin dezvoltarea de programe integrate de orientare şi consiliere în carieră şi prin sprijinirea parteneriatelor între şcoli, universităţi şi întreprinderi; prevenirea şi corectarea fenomenului de părăsire timpurie a şcolii prin programe integrate pentru prevenirea abandonului şcolar, încurajarea participării şcolare şi reintegrarea celor care au părăsit şcoala timpuriu; creşterea accesului şi participării la formare profesională continuă prin diversificarea programelor de formare profesională continuă şi sprijinirea participării angajaţilor la astfel de programe.Axa Prioritară 3 “Creşterea adaptabilităţii lucrătorilor şi a întreprinderilor”
12345678abcd www.utm.ro/posdru141699.1-
www.utm.ro/posdru141699.1: Axa prioritară 2 finanţează activităţi care urmăresc facilitarea tranziţiei de la şcoală la viaţa activă prin dezvoltarea de programe integrate de orientare şi consiliere în carieră şi prin sprijinirea parteneriatelor între şcoli, universităţi şi întreprinderi, prevenirea şi corectarea fenomenului de părăsire timpurie a şcolii prin programe integrate pentru prevenirea abandonului şcolar, încurajarea participării şcolare şi reintegrarea celor care au părăsit şcoala timpuriu, creşterea accesului şi participării la formare profesională continuă prin diversificarea programelor de formare profesională continuă şi sprijinirea participării angajaţilor la astfel de programe. www.utm.ro/posdru141699.1- 12345678abcd www.utm.ro/posdru141699/index.html-
www.utm.ro/posdru141699/index.html: Axa prioritară 2 finanţează activităţi care urmăresc facilitarea tranziţiei de la şcoală la viaţa activă prin dezvoltarea de programe integrate de orientare şi consiliere în carieră şi prin sprijinirea parteneriatelor între şcoli, universităţi şi întreprinderi, prevenirea şi corectarea fenomenului de părăsire timpurie a şcolii prin programe integrate pentru prevenirea abandonului şcolar, încurajarea participării şcolare şi reintegrarea celor care au părăsit şcoala timpuriu, creşterea accesului şi participării la formare profesională continuă prin diversificarea programelor de formare profesională continuă şi sprijinirea participării angajaţilor la astfel de programe. www.utm.ro/posdru141699/index.html- 12345678abcd www.utm.ro/posdru141699/Despre_POSDRU.html-
www.utm.ro/posdru141699/Despre_POSDRU.html: Axa prioritară 2 finanţează activităţi care urmăresc facilitarea tranziţiei de la şcoală la viaţa activă prin dezvoltarea de programe integrate de orientare şi consiliere în carieră şi prin sprijinirea parteneriatelor între şcoli, universităţi şi întreprinderi, prevenirea şi corectarea fenomenului de părăsire timpurie a şcolii prin programe integrate pentru prevenirea abandonului şcolar, încurajarea participării şcolare şi reintegrarea celor care au părăsit şcoala timpuriu, creşterea accesului şi participării la formare profesională continuă prin diversificarea programelor de formare profesională continuă şi sprijinirea participării angajaţilor la astfel de programe. www.utm.ro/posdru141699/Despre_POSDRU.html- 12345678abcd www.utm.ro/en/proiecte-europene/despre-pos-dru/index.html- www.utm.ro/en/proiecte-europene/despre-pos-dru/index.html:Axa prioritară 2 finanţează activităţi care urmăresc facilitarea tranziţiei de la şcoală la viaţa activă prin dezvoltarea de programe integrate de orientare şi consiliere în carieră şi prin sprijinirea parteneriatelor între şcoli, universităţi şi întreprinderi; prevenirea şi corectarea fenomenului de părăsire timpurie a şcolii prin programe integrate pentru prevenirea abandonului şcolar, încurajarea participării şcolare şi reintegrarea celor care au părăsit şcoala timpuriu; creşterea accesului şi participării la formare profesională continuă prin diversificarea programelor de formare profesională continuă şi sprijinirea participării angajaţilor la astfel de programe. www.utm.ro/en/proiecte-europene/despre-pos-dru/index.html-Axa Prioritară 3 “Creşterea adaptabilităţii lucrătorilor şi a întreprinderilor”
所需的输出是一个文件,其中包含 adrese.csv 中的行及其相应的文本,其中仅包含单词“abandon”及其左右各 50 个字符:
www.utgjiu.ro/despre/index.html?p=5400在放弃中逐渐减少人口。 Nevoia unor sisteme dereferinşa este, poate, ma
<小时/>在 friend 的帮助下,我得到了我需要的东西。下面的 Python 脚本由 Radu Eosif Mihăilescu 编写:
#!/usr/bin/python
"""Custom work for Razvan T. Coloja, placed in the public domain by the author.
"""
import sys
MAGIC_WORD = 'abandon'
def main(argv):
with open(argv[1], 'r') as faddr:
addresses = set(l.rstrip() for l in faddr)
with open(argv[2], 'r') as fres:
the_text = set(l.rstrip() for l in fres)
for address in addresses:
for line in the_text:
if line.startswith(address):
where_found = line.find(MAGIC_WORD)
if where_found != -1:
if where_found > 50:
start_excerpt = where_found - 50
else:
start_excerpt = 0
print '"%s","%s"' % (
address,
line[start_excerpt:where_found + len(MAGIC_WORD) + 50])
if __name__ == '__main__':
main(sys.argv)
最佳答案
如果我正确理解了您想要实现的目标(在 adrese.csv
上为 rezultate2.txt
中带有“abandon”的每一行运行 grep
),则以下代码片段应该可以做到这一点:
grep -E -o ".{0,50}abandon.{0,50}" rezultate2.txt | while read LINE ; do
grep "$LINE" adrese.csv >> output.csv
done
关于linux - 如何对文件中的每一行运行 grep 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47369815/