<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=%2FCw3</id>
	<title>/Cw3 - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=%2FCw3"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=/Cw3&amp;action=history"/>
	<updated>2026-04-24T00:00:59Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=/Cw3&amp;diff=2043&amp;oldid=prev</id>
		<title>Jarekz: /* TI:WTBD/Ćwiczenia 3 */</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=/Cw3&amp;diff=2043&amp;oldid=prev"/>
		<updated>2015-05-23T14:56:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;TI:WTBD/Ćwiczenia 3&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Wersja z 14:56, 23 maj 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;Linia 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Po czym przeszliśmy do przykładu związanego z analizą danych w postaci tekstu delimitowanego (rekordy z separatorem pól):&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Po czym przeszliśmy do przykładu związanego z analizą danych w postaci tekstu delimitowanego (rekordy z separatorem pól):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;py&lt;/del&gt;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;python&lt;/ins&gt;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#! /usr/bin/python&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#! /usr/bin/python&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# coding: utf-8&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# coding: utf-8&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=/Cw3&amp;diff=2042&amp;oldid=prev</id>
		<title>Jarekz: Utworzono nową stronę &quot;= TI:WTBD/Ćwiczenia 3 =  Tu sporo czasu nam zeszło na przypomnieniu, na czym polega obróbka linii poleceń przez powłokę, rozwijanie wzorców nazw plików itd....&quot;</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=/Cw3&amp;diff=2042&amp;oldid=prev"/>
		<updated>2015-05-23T14:56:34Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;= &lt;a href=&quot;/edu/index.php/TI:WTBD&quot; title=&quot;TI:WTBD&quot;&gt;TI:WTBD&lt;/a&gt;/Ćwiczenia 3 =  Tu sporo czasu nam zeszło na przypomnieniu, na czym polega obróbka linii poleceń przez powłokę, rozwijanie wzorców nazw plików itd....&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= [[TI:WTBD]]/Ćwiczenia 3 =&lt;br /&gt;
&lt;br /&gt;
Tu sporo czasu nam zeszło na przypomnieniu, na czym polega obróbka linii poleceń przez powłokę, rozwijanie wzorców nazw plików itd.&lt;br /&gt;
&lt;br /&gt;
Po czym przeszliśmy do przykładu związanego z analizą danych w postaci tekstu delimitowanego (rekordy z separatorem pól):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
# coding: utf-8&lt;br /&gt;
# luser.py&lt;br /&gt;
import nis&lt;br /&gt;
from sys import stdout, stderr, argv&lt;br /&gt;
&lt;br /&gt;
def main(args):&lt;br /&gt;
    passwd_map = nis.cat('passwd')&lt;br /&gt;
    found = list()&lt;br /&gt;
    for who in args:&lt;br /&gt;
        if who in passwd_map: # dokładne dopasowania loginu wypisujemy najpierw&lt;br /&gt;
            found.append(passwd_map[who].split(':'))&lt;br /&gt;
            del passwd_map[who] # po to aby każdego pasującego wypisać raz&lt;br /&gt;
    for who in args:&lt;br /&gt;
        who = who.lower()&lt;br /&gt;
        for rec in passwd_map.values():&lt;br /&gt;
            rec = rec.split(':')&lt;br /&gt;
            if (who in rec[0] # pasuje do loginu&lt;br /&gt;
                    or who in rec[4].lower() # pasuje do gecos&lt;br /&gt;
            ):&lt;br /&gt;
                found.append(rec)&lt;br /&gt;
                del passwd_map[rec[0]]&lt;br /&gt;
    for rec in found:&lt;br /&gt;
        output(rec)&lt;br /&gt;
    if not found:&lt;br /&gt;
        stdout.write(u'*** Nie znaleziono pasujących rekordów.\n'.encode('utf-8'))&lt;br /&gt;
&lt;br /&gt;
def output(rec):&lt;br /&gt;
    stdout.write(&lt;br /&gt;
        (u&amp;quot;%-10s%-35s%8s\n&amp;quot; % (rec[0], rec[4][:34], rec[5].split('/')[2]))&lt;br /&gt;
        .encode('utf-8')&lt;br /&gt;
    )&lt;br /&gt;
    # stdout.flush() # hmm..&lt;br /&gt;
    &lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    try:&lt;br /&gt;
        nis.get_default_domain()&lt;br /&gt;
    except nis.error:&lt;br /&gt;
            stderr.write(&lt;br /&gt;
                u'Ten system nie korzysta z NIS, albo domena niedostępna.\n'&lt;br /&gt;
                .encode('utf-8')&lt;br /&gt;
            )&lt;br /&gt;
            exit(2)&lt;br /&gt;
    prog, args = argv[0], argv[1:]&lt;br /&gt;
    if not args:&lt;br /&gt;
        stderr.write(&lt;br /&gt;
            'Użycie: {0} str1 [ str2 .. ]\n'&lt;br /&gt;
            .format(__file__)&lt;br /&gt;
        )&lt;br /&gt;
        exit(1)&lt;br /&gt;
    main(args)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
</feed>