├── Jude
├── hello
├── jude_training_1
├── test
├── dirname_proj
│ ├── sample_dir_only
│ ├── only_logs
│ ├── no_dups_sorted_dir_only
│ ├── sample
│ ├── dir_only
│ ├── sorted_dir_only
│ └── list
├── #test1#
├── doubt
├── testing
├── XXXXXXXXX-1_Mapping.out.9999999.sug-prod-moab
├── jude_frequent_commands.ipynb
├── HKWYYCCXY-1_Mapping.out.3435435.sug-prod-moab
└── snfs160_8.txt
├── modules
├── search
│ ├── File_1.txt
│ ├── File_2.txt
│ ├── Folder_2
│ │ ├── File_3.txt
│ │ ├── File_4.txt
│ │ └── Folder_4
│ │ │ └── File_6.txt
│ ├── Folder_1
│ │ ├── Folder_3
│ │ │ └── File_5.txt
│ │ ├── Atxt
│ │ └── hello
│ └── empty_list
├── compress
│ ├── A_1
│ │ ├── file_1
│ │ └── file_2
│ ├── countries
│ ├── cities
│ ├── A_1_zipped.tar.gz
│ ├── countries_zipped.gz
│ └── compress.ipynb
├── manipulate
│ ├── one.txt
│ ├── one_output.txt
│ ├── two.txt
│ ├── input.txt
│ ├── three.txt
│ ├── output.txt
│ ├── cut_demo
│ ├── sed.txt
│ ├── cut_example.txt
│ └── employees.txt
├── compare
│ ├── one_list
│ ├── two_list
│ ├── one_list_sorted
│ ├── two_list_sorted
│ ├── pets
│ ├── flowers
│ ├── flowers_sorted
│ └── compare_module.ipynb
├── copy_share
│ └── copy_share.ipynb
├── make.ipynb
├── control_.ipynb
└── view.ipynb
├── README.md
├── zip_modules
├── compare.tar.gz
├── search.tar.gz
└── manipulate.tar.gz
├── LICENSE
├── learning_bash_modules.md
├── .gitignore
├── Make.ipynb
└── Control_.ipynb
/Jude/hello:
--------------------------------------------------------------------------------
1 | hello
2 | hi
3 |
--------------------------------------------------------------------------------
/Jude/jude_training_1:
--------------------------------------------------------------------------------
1 | hello!
--------------------------------------------------------------------------------
/Jude/test:
--------------------------------------------------------------------------------
1 | This is a test
2 |
--------------------------------------------------------------------------------
/modules/search/File_1.txt:
--------------------------------------------------------------------------------
1 | A
--------------------------------------------------------------------------------
/modules/search/File_2.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Jude/dirname_proj/sample_dir_only:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/modules/compress/A_1/file_1:
--------------------------------------------------------------------------------
1 | file 1
--------------------------------------------------------------------------------
/modules/compress/A_1/file_2:
--------------------------------------------------------------------------------
1 | file_2
--------------------------------------------------------------------------------
/modules/manipulate/one.txt:
--------------------------------------------------------------------------------
1 | one is one
--------------------------------------------------------------------------------
/modules/search/Folder_2/File_3.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/modules/search/Folder_2/File_4.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/modules/search/Folder_1/Folder_3/File_5.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/modules/search/Folder_2/Folder_4/File_6.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Jude/#test1#:
--------------------------------------------------------------------------------
1 | cat > test2
2 | what is your name
--------------------------------------------------------------------------------
/modules/manipulate/one_output.txt:
--------------------------------------------------------------------------------
1 | one is one
2 |
--------------------------------------------------------------------------------
/modules/search/Folder_1/Atxt:
--------------------------------------------------------------------------------
1 | Hello!
2 | hello
--------------------------------------------------------------------------------
/modules/manipulate/two.txt:
--------------------------------------------------------------------------------
1 | one is one
2 | two is two
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # training
2 | Resources for internal training
3 |
--------------------------------------------------------------------------------
/modules/search/Folder_1/hello:
--------------------------------------------------------------------------------
1 | HellO
2 | hello
3 | HELLO
4 |
--------------------------------------------------------------------------------
/modules/compare/one_list:
--------------------------------------------------------------------------------
1 | A
2 | B
3 | C
4 | D
5 | E
6 | F
7 | G
8 |
--------------------------------------------------------------------------------
/modules/compare/two_list:
--------------------------------------------------------------------------------
1 | A
2 | A
3 | B
4 | D
5 | C
6 | E
7 | F
8 |
--------------------------------------------------------------------------------
/modules/compare/one_list_sorted:
--------------------------------------------------------------------------------
1 | A
2 | B
3 | C
4 | D
5 | E
6 | F
7 | G
8 |
--------------------------------------------------------------------------------
/modules/compare/two_list_sorted:
--------------------------------------------------------------------------------
1 | A
2 | A
3 | B
4 | C
5 | D
6 | E
7 | F
8 |
--------------------------------------------------------------------------------
/modules/manipulate/input.txt:
--------------------------------------------------------------------------------
1 | hello world
2 | world world
3 |
4 | world
--------------------------------------------------------------------------------
/modules/manipulate/three.txt:
--------------------------------------------------------------------------------
1 | one is one
2 | two is two
3 | three is three
--------------------------------------------------------------------------------
/modules/compare/pets:
--------------------------------------------------------------------------------
1 | Roses
2 | Lillies
3 | Tulips
4 | Peony
5 | Tulips
6 |
--------------------------------------------------------------------------------
/modules/manipulate/output.txt:
--------------------------------------------------------------------------------
1 | world world
2 | world world
3 |
4 | world
5 |
--------------------------------------------------------------------------------
/modules/manipulate/cut_demo:
--------------------------------------------------------------------------------
1 | hello world
2 | names are fun
3 | what is yours
4 |
--------------------------------------------------------------------------------
/modules/compare/flowers:
--------------------------------------------------------------------------------
1 | Roses
2 | Roses
3 | Lillies
4 | Tulips
5 | Peony
6 | Tulips
7 |
--------------------------------------------------------------------------------
/modules/compare/flowers_sorted:
--------------------------------------------------------------------------------
1 | Lillies
2 | Peony
3 | Roses
4 | Roses
5 | Tulips
6 | Tulips
7 |
--------------------------------------------------------------------------------
/modules/compress/countries:
--------------------------------------------------------------------------------
1 | united states of america
2 | canada
3 | france
4 | spain
5 | mexico
6 | brazil
--------------------------------------------------------------------------------
/modules/compress/cities:
--------------------------------------------------------------------------------
1 | Houston
2 | Dallas
3 | Austin
4 | Seattle
5 | Portland
6 | Los Angeles
7 | San Diego
8 |
--------------------------------------------------------------------------------
/zip_modules/compare.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/submissions/submissions-training/master/zip_modules/compare.tar.gz
--------------------------------------------------------------------------------
/zip_modules/search.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/submissions/submissions-training/master/zip_modules/search.tar.gz
--------------------------------------------------------------------------------
/zip_modules/manipulate.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/submissions/submissions-training/master/zip_modules/manipulate.tar.gz
--------------------------------------------------------------------------------
/modules/manipulate/sed.txt:
--------------------------------------------------------------------------------
1 | * is a command
2 |
3 | ** is a command
4 |
5 | * * is a command
6 |
7 | **** is a command ****
8 |
9 |
--------------------------------------------------------------------------------
/modules/compress/A_1_zipped.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/submissions/submissions-training/master/modules/compress/A_1_zipped.tar.gz
--------------------------------------------------------------------------------
/modules/compress/countries_zipped.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/submissions/submissions-training/master/modules/compress/countries_zipped.gz
--------------------------------------------------------------------------------
/modules/search/empty_list:
--------------------------------------------------------------------------------
1 | ./empty_list
2 | ./File_2.txt
3 | ./Folder_1/Folder_3/File_5.txt
4 | ./Folder_2/File_3.txt
5 | ./Folder_2/File_4.txt
6 | ./Folder_2/Folder_4/File_6.txt
7 |
--------------------------------------------------------------------------------
/modules/manipulate/cut_example.txt:
--------------------------------------------------------------------------------
1 | cat command for file oriented operations.
2 | cp command for copy files or directories.
3 | ls command to list out files and directories with its attributes.
--------------------------------------------------------------------------------
/modules/manipulate/employees.txt:
--------------------------------------------------------------------------------
1 | Cerebellum manager account 45000
2 | Cerebrum clerk account 25000
3 | Hypothalamus manager sales 50000
4 | Dendrites manager account 47000
5 | Grey clerk sales 15000
6 | White clerk sales 23000
7 |
--------------------------------------------------------------------------------
/Jude/doubt:
--------------------------------------------------------------------------------
1 | /stornext/snfsa/archive/archive_jobs/2018/08/201808070208/stornext/snfs110/next-gen/Illumina/Instruments/E00329/170802_E00329_0537_AH5NN7CCXY/Results/Project_H5NN7CCXY/Sample_H5NN7CCXY-1-IDUDI0006/H5NN7CCXY-1-IDUDI0006_S8_L001_R1_001.fastq.gz
2 |
--------------------------------------------------------------------------------
/Jude/testing:
--------------------------------------------------------------------------------
1 | ;; This buffer is for notes you don't want to save, and for Lisp evaluation.
2 | ;; If you want to create a file, visit that file with C-x C-f,
3 | ;; then enter the text in that file's own buffer.
4 |
5 | this is a test:
6 |
7 | mkdir test1
--------------------------------------------------------------------------------
/Jude/dirname_proj/only_logs:
--------------------------------------------------------------------------------
1 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/180225_ST-E00186_0702_BHJYY5CCXY/Results/Project_HJYY5CCXY/Sample_HJYY5CCXY-1-IDDUI038/logs
2 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/180225_ST-E00186_0702_BHJYY5CCXY/Results/Project_HJYY5CCXY/Sample_HJYY5CCXY-1-IDDUI038/logs
3 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/180225_ST-E00186_0702_BHJYY5CCXY/Results/Project_HJYY5CCXY/Sample_HJYY5CCXY-1-IDDUI038/logs
4 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/180225_ST-E00186_0702_BHJYY5CCXY/Results/Project_HJYY5CCXY/Sample_HJYY5CCXY-1-IDDUI042/logs
5 |
--------------------------------------------------------------------------------
/Jude/dirname_proj/no_dups_sorted_dir_only:
--------------------------------------------------------------------------------
1 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-1-IDL10
2 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-2-IDL10
3 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-3-IDL10
4 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-4-IDL10
5 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Jude/dirname_proj/sample:
--------------------------------------------------------------------------------
1 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/180225_ST-E00186_0702_BHJYY5CCXY/Results/Project_HJYY5CCXY/Sample_HJYY5CCXY-1-IDDUI038/logs
2 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/180225_ST-E00186_0702_BHJYY5CCXY/Results/Project_HJYY5CCXY/Sample_HJYY5CCXY-1-IDDUI038/logs
3 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/180225_ST-E00186_0702_BHJYY5CCXY/Results/Project_HJYY5CCXY/Sample_HJYY5CCXY-1-IDDUI038/logs
4 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/180225_ST-E00186_0702_BHJYY5CCXY/Results/Project_HJYY5CCXY/Sample_HJYY5CCXY-1-IDDUI038
5 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/180225_ST-E00186_0702_BHJYY5CCXY/Results/Project_HJYY5CCXY/Sample_HJYY5CCXY-1-IDDUI042
6 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/180225_ST-E00186_0702_BHJYY5CCXY/Results/Project_HJYY5CCXY/Sample_HJYY5CCXY-1-IDDUI042
7 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/180225_ST-E00186_0702_BHJYY5CCXY/Results/Project_HJYY5CCXY/Sample_HJYY5CCXY-1-IDDUI042
8 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/180225_ST-E00186_0702_BHJYY5CCXY/Results/Project_HJYY5CCXY/Sample_HJYY5CCXY-1-IDDUI042/logs
9 |
--------------------------------------------------------------------------------
/learning_bash_modules.md:
--------------------------------------------------------------------------------
1 |
2 | # Modules
3 |
4 |
5 | ## Basics
6 |
7 | ### Jupyter
8 |
9 |
10 | ### EDIT
11 |
12 | * emacs
13 |
14 |
15 | ### VIEW
16 |
17 | * head
18 | * tail
19 | * echo
20 | * history
21 | * date
22 | * which
23 | * type
24 |
25 |
26 | ### MAKE
27 |
28 | * touch
29 | * cat
30 | * mkdir
31 |
32 |
33 | ### CONTROL
34 |
35 | * chmod
36 | * pushd / popd
37 | * rm
38 | * rmdir
39 |
40 |
41 | ### SEARCH
42 |
43 | * tree
44 | * grep
45 | * find
46 |
47 |
48 | ### COMPARE
49 |
50 | * diff
51 | * uniq
52 | * comm
53 | * sort
54 |
55 |
56 | ### MANIPULATE
57 |
58 | * cut
59 | * tr
60 | * awk
61 | * sed
62 |
63 |
64 | ### COMPRESS
65 |
66 | * xzip
67 | * bzip2
68 | * gzip
69 | * tar
70 |
71 |
72 | ### COPY/SHARE
73 |
74 | * cp
75 | * scp
76 | * rsync
77 | * curl
78 | * xsum
79 | * md5sum
80 | * sha1sum
81 | * sha224sum
82 | * sha256sum
83 | * sha384sum
84 | * sha512sum
85 | * wget
86 |
87 |
88 | ## HIGHER LEVEL
89 |
90 |
91 | ### MULTIPLEX
92 |
93 | * tmux
94 |
95 |
96 | ### SCRIPT
97 |
98 | * shebang
99 | * while
100 | * if
101 | * for
102 | * stdin
103 | * source
104 |
105 | ### LOG_ERROR
106 |
107 | * stdout
108 | * stderr
109 | * exit code
110 |
111 | ### PROCESS
112 |
113 | * kill
114 | * PID
115 |
116 | ### ENVIRONMENT
117 |
118 | * xargs
119 | * xterm
120 | * variables
121 | * source
122 |
123 | ### MOAB
124 |
125 | * jobs
126 | * qstat
127 | * qdel
128 |
129 | ### GIT
130 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | *.egg-info/
24 | .installed.cfg
25 | *.egg
26 | MANIFEST
27 |
28 | # PyInstaller
29 | # Usually these files are written by a python script from a template
30 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
31 | *.manifest
32 | *.spec
33 |
34 | # Installer logs
35 | pip-log.txt
36 | pip-delete-this-directory.txt
37 |
38 | # Unit test / coverage reports
39 | htmlcov/
40 | .tox/
41 | .coverage
42 | .coverage.*
43 | .cache
44 | nosetests.xml
45 | coverage.xml
46 | *.cover
47 | .hypothesis/
48 | .pytest_cache/
49 |
50 | # Translations
51 | *.mo
52 | *.pot
53 |
54 | # Django stuff:
55 | *.log
56 | local_settings.py
57 | db.sqlite3
58 |
59 | # Flask stuff:
60 | instance/
61 | .webassets-cache
62 |
63 | # Scrapy stuff:
64 | .scrapy
65 |
66 | # Sphinx documentation
67 | docs/_build/
68 |
69 | # PyBuilder
70 | target/
71 |
72 | # Jupyter Notebook
73 | .ipynb_checkpoints
74 |
75 | # pyenv
76 | .python-version
77 |
78 | # celery beat schedule file
79 | celerybeat-schedule
80 |
81 | # SageMath parsed files
82 | *.sage.py
83 |
84 | # Environments
85 | .env
86 | .venv
87 | env/
88 | venv/
89 | ENV/
90 | env.bak/
91 | venv.bak/
92 |
93 | # Spyder project settings
94 | .spyderproject
95 | .spyproject
96 |
97 | # Rope project settings
98 | .ropeproject
99 |
100 | # mkdocs documentation
101 | /site
102 |
103 | # mypy
104 | .mypy_cache/
105 |
106 | # Local generated files
107 | /modules/dir_a
108 | /modules/dir_b
109 | /modules/input_a.txt
110 | /modules/*log
111 | /modules/bin/ts
112 |
--------------------------------------------------------------------------------
/modules/copy_share/copy_share.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "## rsync\n",
8 | "- rsync is a file transfer program
\n",
9 | "- fast method for bringing remote files into sync
\n",
10 | "- sends just the differences in the files across the link"
11 | ]
12 | },
13 | {
14 | "cell_type": "markdown",
15 | "metadata": {},
16 | "source": [
17 | "# Cryptic Hash Functions\n",
18 | "\n",
19 | "## md5sum\n",
20 | "- compute and check MD5 message digest
\n",
21 | "\n",
22 | "#### Synopsis\n",
23 | "> md5sum [OPTION]... [FILE]...
\n",
24 | "\n",
25 | "#### Verification\n",
26 | "- -c or --check
\n",
27 | "- --quiet"
28 | ]
29 | },
30 | {
31 | "cell_type": "markdown",
32 | "metadata": {},
33 | "source": [
34 | "## sha1\n",
35 | "- takes an input and produces a 160-bit hash value
\n",
36 | "- typically rendered as a hexadecimal number, 40 digits long\n",
37 | "\n",
38 | "## sha2\n",
39 | "> consists of six hash functions with digests (hash values):
\n",
40 | "- SHA-224: 224 bits
\n",
41 | "- SHA-256: 256 bits
\n",
42 | "- SHA-384: 384 bits
\n",
43 | "- SHA-512: 512 bits
\n",
44 | "- SHA-512/224
\n",
45 | "- SHA-512/256"
46 | ]
47 | },
48 | {
49 | "cell_type": "code",
50 | "execution_count": null,
51 | "metadata": {},
52 | "outputs": [],
53 | "source": []
54 | }
55 | ],
56 | "metadata": {
57 | "kernelspec": {
58 | "display_name": "Python 3",
59 | "language": "python",
60 | "name": "python3"
61 | },
62 | "language_info": {
63 | "codemirror_mode": {
64 | "name": "ipython",
65 | "version": 3
66 | },
67 | "file_extension": ".py",
68 | "mimetype": "text/x-python",
69 | "name": "python",
70 | "nbconvert_exporter": "python",
71 | "pygments_lexer": "ipython3",
72 | "version": "3.6.4"
73 | }
74 | },
75 | "nbformat": 4,
76 | "nbformat_minor": 2
77 | }
78 |
--------------------------------------------------------------------------------
/Jude/dirname_proj/dir_only:
--------------------------------------------------------------------------------
1 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-1-IDL10
2 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-1-IDL10
3 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-1-IDL10
4 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-1-IDL10
5 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-2-IDL10
6 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-2-IDL10
7 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-2-IDL10
8 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-2-IDL10
9 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-3-IDL10
10 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-3-IDL10
11 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-3-IDL10
12 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-3-IDL10
13 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-4-IDL10
14 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-4-IDL10
15 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-4-IDL10
16 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-4-IDL10
17 |
--------------------------------------------------------------------------------
/Jude/dirname_proj/sorted_dir_only:
--------------------------------------------------------------------------------
1 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-1-IDL10
2 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-1-IDL10
3 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-1-IDL10
4 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-1-IDL10
5 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-2-IDL10
6 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-2-IDL10
7 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-2-IDL10
8 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-2-IDL10
9 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-3-IDL10
10 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-3-IDL10
11 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-3-IDL10
12 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-3-IDL10
13 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-4-IDL10
14 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-4-IDL10
15 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-4-IDL10
16 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-4-IDL10
17 |
--------------------------------------------------------------------------------
/Jude/XXXXXXXXX-1_Mapping.out.9999999.sug-prod-moab:
--------------------------------------------------------------------------------
1 | [ HgV ] Step name: XXXXXXXXX-1_Mapping
2 | [ HgV ] Node name: c81m-12b
3 | [ HgV ] PBS_JOBID: 3435435.sug-prod-moab
4 | [ HgV ] Start time: Sat May 5 20:15:08 CDT 2018
5 | ((((((-------Running HgV Script-------))))))
6 | #!/bin/bash
7 | #PBS -N HKWYYCCXY-1_Mapping
8 | #PBS -o /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/logs/HKWYYCCXY-1_Mapping.out.$PBS_JOBID
9 | #PBS -e /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/logs/HKWYYCCXY-1_Mapping.err.$PBS_JOBID
10 | #PBS -d /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1
11 | #PBS -l nodes=1:ppn=8,mem=48000mb
12 | #PBS -l walltime=168:00:00
13 | #PBS -q ill-prod
14 | #PBS -A HEMSTR_prog-ng0013
15 | #The return value of a pipeline is the value of the last command to exit with non-zero status
16 | set -o pipefail
17 |
18 | #Use the same HgV as was in the environment when the job was created regardless of user environment
19 | source /hgsc_software/HgV/HgV-v17.5/setup.sh /hgsc_software/HgV/HgV-v17.5 /hgsc_software/HgV/HgV-v17.5/config/production/
20 |
21 | #Wraps commands so we can be notified of failed commands
22 | function hgvExitSafe {
23 | echo "[ HgV ] Command $1 Finished on $(date)";
24 | echo "[ HgV ] Exit Status: $2"
25 | if [ $2 -ne 0 ]; then
26 | echo "[ HgV ] Aborting Step"
27 | hgv Exit -n HKWYYCCXY-1_Mapping -s $2 -o /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/logs/HKWYYCCXY-1_Mapping.out.$PBS_JOBID -e /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/logs/HKWYYCCXY-1_Mapping.err.$PBS_JOBID -d /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1
28 | exit $2
29 | fi
30 | }
31 |
32 | echo -e "[ HgV ] Step name:\tHKWYYCCXY-1_Mapping"
33 | echo -e "[ HgV ] Node name:\t$(uname -n)"
34 | echo -e "[ HgV ] PBS_JOBID:\t$PBS_JOBID"
35 | echo -e "[ HgV ] Start time:\t$(date)"
36 |
37 | echo "((((((-------Running HgV Script-------))))))"
38 | cat "/stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/scripts/HKWYYCCXY-1_Mapping.sh"
39 | echo "((((((-------Begin Run's Log-------))))))"
40 |
41 | [ HgV ] Job statistics:
42 | {"id": "9999999.sug-prod-moab", "name": "XXXXXXXXX-1_Mapping", "cput": "100:11:11", "mem": "555555kb", "wall": "33:33:33"}
43 |
44 |
--------------------------------------------------------------------------------
/Jude/dirname_proj/list:
--------------------------------------------------------------------------------
1 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-1-IDL10/H5NJNALXX-1-IDL10.hgv.bam
2 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-1-IDL10/H5NJNALXX-1-IDL10.config.csv
3 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-1-IDL10/H5NJNALXX-1-IDL10_S5_L001_R2_001.fastq.gz
4 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-1-IDL10/H5NJNALXX-1-IDL10_S5_L001_R1_001.fastq.gz
5 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-2-IDL10/H5NJNALXX-2-IDL10.hgv.bam
6 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-2-IDL10/H5NJNALXX-2-IDL10.config.csv
7 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-2-IDL10/H5NJNALXX-2-IDL10_S7_L002_R1_001.fastq.gz
8 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-2-IDL10/H5NJNALXX-2-IDL10_S7_L002_R2_001.fastq.gz
9 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-3-IDL10/H5NJNALXX-3-IDL10_S7_L003_R1_001.fastq.gz
10 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-3-IDL10/H5NJNALXX-3-IDL10_S7_L003_R2_001.fastq.gz
11 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-3-IDL10/H5NJNALXX-3-IDL10.hgv.bam
12 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-3-IDL10/H5NJNALXX-3-IDL10.config.csv
13 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-4-IDL10/H5NJNALXX-4-IDL10.hgv.bam
14 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-4-IDL10/H5NJNALXX-4-IDL10_S4_L004_R2_001.fastq.gz
15 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-4-IDL10/H5NJNALXX-4-IDL10_S4_L004_R1_001.fastq.gz
16 | /stornext/snfs130/next-gen/Illumina/Instruments/E00186/161001_ST-E00186_0362_BH5NJNALXX/Results/Project_161001_ST-E00186_0362_BH5NJNALXX/Sample_H5NJNALXX-4-IDL10/H5NJNALXX-4-IDL10.config.csv
17 |
--------------------------------------------------------------------------------
/modules/compress/compress.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "## BZIP2\n",
8 | "\n",
9 | "- used for compressing and decompressing files
\n",
10 | "- compression is lossless
\n",
11 | "- disadvantage: sligtly slower than gzip"
12 | ]
13 | },
14 | {
15 | "cell_type": "markdown",
16 | "metadata": {},
17 | "source": [
18 | "> **Syntax**
\n",
19 | "> bzip2 [option(s)] file_name(s)"
20 | ]
21 | },
22 | {
23 | "cell_type": "code",
24 | "execution_count": 18,
25 | "metadata": {},
26 | "outputs": [],
27 | "source": [
28 | "!bzip2 cities"
29 | ]
30 | },
31 | {
32 | "cell_type": "code",
33 | "execution_count": 21,
34 | "metadata": {},
35 | "outputs": [],
36 | "source": [
37 | "!bzip2 -d countries.bz2"
38 | ]
39 | },
40 | {
41 | "cell_type": "code",
42 | "execution_count": 22,
43 | "metadata": {},
44 | "outputs": [],
45 | "source": [
46 | "!bzip2 -d cities.bz2"
47 | ]
48 | },
49 | {
50 | "cell_type": "code",
51 | "execution_count": 20,
52 | "metadata": {},
53 | "outputs": [],
54 | "source": [
55 | "!bzip2 cities countries"
56 | ]
57 | },
58 | {
59 | "cell_type": "code",
60 | "execution_count": null,
61 | "metadata": {},
62 | "outputs": [],
63 | "source": []
64 | },
65 | {
66 | "cell_type": "markdown",
67 | "metadata": {},
68 | "source": [
69 | "## GZIP\n",
70 | "- keeps the original file name and timestamp in the compressed file
\n",
71 | "- https://linux.die.net/man/1/gzip
"
72 | ]
73 | },
74 | {
75 | "cell_type": "markdown",
76 | "metadata": {},
77 | "source": [
78 | "> **Syntax**
\n",
79 | "> gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]"
80 | ]
81 | },
82 | {
83 | "cell_type": "code",
84 | "execution_count": 23,
85 | "metadata": {},
86 | "outputs": [],
87 | "source": [
88 | "!gzip countries"
89 | ]
90 | },
91 | {
92 | "cell_type": "code",
93 | "execution_count": 24,
94 | "metadata": {},
95 | "outputs": [],
96 | "source": [
97 | "!gzip -d countries.gz"
98 | ]
99 | },
100 | {
101 | "cell_type": "code",
102 | "execution_count": 25,
103 | "metadata": {},
104 | "outputs": [],
105 | "source": [
106 | "!gzip -c countries > countries_zipped.gz"
107 | ]
108 | },
109 | {
110 | "cell_type": "markdown",
111 | "metadata": {},
112 | "source": [
113 | "## TAR\n",
114 | "- creating an archive
"
115 | ]
116 | },
117 | {
118 | "cell_type": "markdown",
119 | "metadata": {},
120 | "source": [
121 | "> **Syntax**
\n",
122 | "> tar -czvf name-of-archive.tar.gz /path/to/directory-or-file
\n",
123 | "\n",
124 | "**What this means:**
\n",
125 | "- c: Create an archive\n",
126 | "- z: Compress the archive with gzip\n",
127 | "- v: Display progress in the terminal while creating the archive, also known as “verbose” mode. The v is always optional in these commands, but it’s helpful\n",
128 | "- f: Allows you to specify the filename of the archive\n"
129 | ]
130 | },
131 | {
132 | "cell_type": "code",
133 | "execution_count": 26,
134 | "metadata": {},
135 | "outputs": [
136 | {
137 | "name": "stdout",
138 | "output_type": "stream",
139 | "text": [
140 | "a A_1\r\n",
141 | "a A_1/.ipynb_checkpoints\r\n",
142 | "a A_1/file_1\r\n",
143 | "a A_1/file_2\r\n"
144 | ]
145 | }
146 | ],
147 | "source": [
148 | "!tar -czvf A_1_zipped.tar.gz A_1"
149 | ]
150 | },
151 | {
152 | "cell_type": "code",
153 | "execution_count": null,
154 | "metadata": {},
155 | "outputs": [],
156 | "source": []
157 | }
158 | ],
159 | "metadata": {
160 | "kernelspec": {
161 | "display_name": "Python 3",
162 | "language": "python",
163 | "name": "python3"
164 | },
165 | "language_info": {
166 | "codemirror_mode": {
167 | "name": "ipython",
168 | "version": 3
169 | },
170 | "file_extension": ".py",
171 | "mimetype": "text/x-python",
172 | "name": "python",
173 | "nbconvert_exporter": "python",
174 | "pygments_lexer": "ipython3",
175 | "version": "3.6.4"
176 | }
177 | },
178 | "nbformat": 4,
179 | "nbformat_minor": 2
180 | }
181 |
--------------------------------------------------------------------------------
/Jude/jude_frequent_commands.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 2,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "%%bash\n",
10 | "cat 7459_search.txt | xargs -I {} dirname {} > bamdir.txt"
11 | ]
12 | },
13 | {
14 | "cell_type": "code",
15 | "execution_count": 3,
16 | "metadata": {},
17 | "outputs": [],
18 | "source": [
19 | "%%bash\n",
20 | "cat bamdir.txt | xargs -I {} dirname {} > 2bamdir.txt"
21 | ]
22 | },
23 | {
24 | "cell_type": "code",
25 | "execution_count": null,
26 | "metadata": {},
27 | "outputs": [],
28 | "source": [
29 | "%%bash\n",
30 | "for file in *Mapping.out.*; do echo $file `tail -n1 $file | sed -r 's/^.+\\\"cput\\\": \\\"([^\\\"]+)\\\".+$/\\1/g'`; done | sed -r 's/\\s+/\\t/g' | cut -f2"
31 | ]
32 | },
33 | {
34 | "cell_type": "code",
35 | "execution_count": 9,
36 | "metadata": {},
37 | "outputs": [
38 | {
39 | "name": "stdout",
40 | "output_type": "stream",
41 | "text": [
42 | "{\"id\": \"3435435.sug-prod-moab\", \"name\": \"HKWYYCCXY-1_Mapping\", \"cput\": \"204:22:08\", \"mem\": \"49355964kb\", \"wall\": \"32:02:03\"}\n"
43 | ]
44 | }
45 | ],
46 | "source": [
47 | "%%bash\n",
48 | "cat *Mapping.out.* | tail -n1"
49 | ]
50 | },
51 | {
52 | "cell_type": "code",
53 | "execution_count": 11,
54 | "metadata": {},
55 | "outputs": [
56 | {
57 | "name": "stdout",
58 | "output_type": "stream",
59 | "text": [
60 | "204:22:08\n"
61 | ]
62 | }
63 | ],
64 | "source": [
65 | "%%bash\n",
66 | "cat *Mapping.out.* | tail -n1 | sed -E 's/^.+\\\"cput\\\": \\\"([^\\\"]+)\\\".+$/\\1/g'"
67 | ]
68 | },
69 | {
70 | "cell_type": "code",
71 | "execution_count": 12,
72 | "metadata": {},
73 | "outputs": [
74 | {
75 | "name": "stdout",
76 | "output_type": "stream",
77 | "text": [
78 | "204:22:08\n"
79 | ]
80 | }
81 | ],
82 | "source": [
83 | "%%bash\n",
84 | "cat *Mapping.out.* | tail -n1 | sed -E 's/^.+\\\"cput\\\": \\\"([^\\\"]+)\\\".+$/\\1/g' | sed -E 's/\\s+/\\t/g'"
85 | ]
86 | },
87 | {
88 | "cell_type": "code",
89 | "execution_count": 28,
90 | "metadata": {},
91 | "outputs": [
92 | {
93 | "name": "stdout",
94 | "output_type": "stream",
95 | "text": [
96 | "HKWYYCCXY-1_Mapping.out.3435435.sug-prod-moab 204:22:08\n",
97 | "XXXXXXXXX-1_Mapping.out.9999999.sug-prod-moab 100:11:11\n"
98 | ]
99 | }
100 | ],
101 | "source": [
102 | "%%bash\n",
103 | "for file in *Mapping.out.*; do echo $file `tail -n1 $file | sed -E 's/^.+\\\"cput\\\": \\\"([^\\\"]+)\\\".+$/\\1/g'`; done"
104 | ]
105 | },
106 | {
107 | "cell_type": "code",
108 | "execution_count": 27,
109 | "metadata": {},
110 | "outputs": [
111 | {
112 | "name": "stdout",
113 | "output_type": "stream",
114 | "text": [
115 | "100:11:11\n"
116 | ]
117 | }
118 | ],
119 | "source": [
120 | "%%bash\n",
121 | "cat XXXXXXXXX-1_Mapping.out.9999999.sug-prod-moab | tail -n1 | sed -E 's/^.+\\\"cput\\\": \\\"([^\\\"]+)\\\".+$/\\1/g'"
122 | ]
123 | },
124 | {
125 | "cell_type": "code",
126 | "execution_count": 29,
127 | "metadata": {},
128 | "outputs": [
129 | {
130 | "name": "stdout",
131 | "output_type": "stream",
132 | "text": [
133 | "HKWYYCCXY-1_Mapping.out.3435435.tug-prod-moab 204:22:08\n",
134 | "XXXXXXXXX-1_Mapping.out.9999999.tug-prod-moab 100:11:11\n"
135 | ]
136 | }
137 | ],
138 | "source": [
139 | "%%bash\n",
140 | "for file in *Mapping.out.*; do echo $file `tail -n1 $file | sed -E 's/^.+\\\"cput\\\": \\\"([^\\\"]+)\\\".+$/\\1/g'`; done | sed -E 's/\\s+/\\t/g' "
141 | ]
142 | },
143 | {
144 | "cell_type": "code",
145 | "execution_count": 30,
146 | "metadata": {},
147 | "outputs": [
148 | {
149 | "name": "stdout",
150 | "output_type": "stream",
151 | "text": [
152 | "HKWYYCCXY-1_Mapping.out.3435435.tug-prod-moab 204:22:08\n",
153 | "XXXXXXXXX-1_Mapping.out.9999999.tug-prod-moab 100:11:11\n"
154 | ]
155 | }
156 | ],
157 | "source": [
158 | "%%bash\n",
159 | "for file in *Mapping.out.*; do echo $file `tail -n1 $file | sed -E 's/^.+\\\"cput\\\": \\\"([^\\\"]+)\\\".+$/\\1/g'`; done | sed -E 's/\\s+/\\t/g' | cut -f2"
160 | ]
161 | },
162 | {
163 | "cell_type": "code",
164 | "execution_count": 34,
165 | "metadata": {},
166 | "outputs": [
167 | {
168 | "name": "stderr",
169 | "output_type": "stream",
170 | "text": [
171 | "HKWYYCCXY-1_Mapping.out.3435435.sug-prod-moab 204:22:08 error\n",
172 | "XXXXXXXXX-1_Mapping.out.9999999.sug-prod-moab error\n"
173 | ]
174 | }
175 | ],
176 | "source": [
177 | "%%bash\n",
178 | "for file in *Mapping.out.*; do echo $file `tail -n1 $file | sed -E 's/^.+\\\"cput\\\": \\\"([^\\\"]+)\\\".+$/\\1/g'` >&2 error; done "
179 | ]
180 | },
181 | {
182 | "cell_type": "code",
183 | "execution_count": null,
184 | "metadata": {},
185 | "outputs": [],
186 | "source": []
187 | }
188 | ],
189 | "metadata": {
190 | "kernelspec": {
191 | "display_name": "Python 3",
192 | "language": "python",
193 | "name": "python3"
194 | },
195 | "language_info": {
196 | "codemirror_mode": {
197 | "name": "ipython",
198 | "version": 3
199 | },
200 | "file_extension": ".py",
201 | "mimetype": "text/x-python",
202 | "name": "python",
203 | "nbconvert_exporter": "python",
204 | "pygments_lexer": "ipython3",
205 | "version": "3.6.4"
206 | }
207 | },
208 | "nbformat": 4,
209 | "nbformat_minor": 2
210 | }
211 |
--------------------------------------------------------------------------------
/Jude/HKWYYCCXY-1_Mapping.out.3435435.sug-prod-moab:
--------------------------------------------------------------------------------
1 | [ HgV ] Step name: HKWYYCCXY-1_Mapping
2 | [ HgV ] Node name: c81m-12b
3 | [ HgV ] PBS_JOBID: 3435435.sug-prod-moab
4 | [ HgV ] Start time: Sat May 5 20:15:08 CDT 2018
5 | ((((((-------Running HgV Script-------))))))
6 | #!/bin/bash
7 | #PBS -N HKWYYCCXY-1_Mapping
8 | #PBS -o /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/logs/HKWYYCCXY-1_Mapping.out.$PBS_JOBID
9 | #PBS -e /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/logs/HKWYYCCXY-1_Mapping.err.$PBS_JOBID
10 | #PBS -d /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1
11 | #PBS -l nodes=1:ppn=8,mem=48000mb
12 | #PBS -l walltime=168:00:00
13 | #PBS -q ill-prod
14 | #PBS -A HEMSTR_prog-ng0013
15 | #The return value of a pipeline is the value of the last command to exit with non-zero status
16 | set -o pipefail
17 |
18 | #Use the same HgV as was in the environment when the job was created regardless of user environment
19 | source /hgsc_software/HgV/HgV-v17.5/setup.sh /hgsc_software/HgV/HgV-v17.5 /hgsc_software/HgV/HgV-v17.5/config/production/
20 |
21 | #Wraps commands so we can be notified of failed commands
22 | function hgvExitSafe {
23 | echo "[ HgV ] Command $1 Finished on $(date)";
24 | echo "[ HgV ] Exit Status: $2"
25 | if [ $2 -ne 0 ]; then
26 | echo "[ HgV ] Aborting Step"
27 | hgv Exit -n HKWYYCCXY-1_Mapping -s $2 -o /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/logs/HKWYYCCXY-1_Mapping.out.$PBS_JOBID -e /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/logs/HKWYYCCXY-1_Mapping.err.$PBS_JOBID -d /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1
28 | exit $2
29 | fi
30 | }
31 |
32 | echo -e "[ HgV ] Step name:\tHKWYYCCXY-1_Mapping"
33 | echo -e "[ HgV ] Node name:\t$(uname -n)"
34 | echo -e "[ HgV ] PBS_JOBID:\t$PBS_JOBID"
35 | echo -e "[ HgV ] Start time:\t$(date)"
36 |
37 | echo "((((((-------Running HgV Script-------))))))"
38 | cat "/stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/scripts/HKWYYCCXY-1_Mapping.sh"
39 | echo "((((((-------Begin Run's Log-------))))))"
40 |
41 | #Commands To Run
42 | echo "[ HgV ] Running Command #0 at $(date)"
43 | time /hgsc_software/bwa/bwa-0.7.15/bwa mem -K 100000000 -Y -t 8 -R '@RG ID:0 SM:201124091-10 LB:HEMSTR.201124091-10-1_2AMP PU:HKWYYCCXY-1 CN:BCM DT:2018-05-05T20:13:42-0500 PL:Illumina' /stornext/snfs5/next-gen/Illumina/bwa_references/g/GRCh38_1000Genomes/GRCh38_full_analysis_set_plus_decoy_hla.fa /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/HKWYYCCXY-1_S0_L001_R1_001.fastq.gz /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/HKWYYCCXY-1_S0_L001_R2_001.fastq.gz | /hgsc_software/samblaster/samblaster-v.0.1.24/samblaster --addMateTags -a | /hgsc_software/samtools/samtools-1.3.1_htslib_1_3_2/bin/samtools view -bu - | /hgsc_software/sambamba/sambamba_v0.6.4/sambamba sort -n -t 8 -l 1 --tmpdir /space1/tmp/$PBS_JOBID -o /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/HKWYYCCXY-1.tmp.bam /dev/stdin; hgvExitSafe 0 $?;
44 | echo "[ HgV ] Running Command #1 at $(date)"
45 | time /hgsc_software/java/jdk1.8.0_74/bin/java -jar -Xmx46g /hgsc_software/picard/picard-tools-2.6.0/picard.jar MarkDuplicates TMP_DIR=/space1/tmp/$PBS_JOBID I=/stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/HKWYYCCXY-1.tmp.bam O=/dev/stdout METRICS_FILE=/stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/mark_dups_metrics.txt ASSUME_SORT_ORDER=queryname QUIET=true COMPRESSION_LEVEL=0 | /hgsc_software/sambamba/sambamba_v0.6.4/sambamba sort -t 8 --tmpdir /space1/tmp/$PBS_JOBID -o /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/HKWYYCCXY-1.hgv.bam /dev/stdin; hgvExitSafe 1 $?;
46 | echo "[ HgV ] Running Command #2 at $(date)"
47 | time /hgsc_software/samtools/samtools-1.3.1_htslib_1_3_2/bin/samtools index /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/HKWYYCCXY-1.hgv.bam /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/HKWYYCCXY-1.hgv.bam.bai; hgvExitSafe 2 $?;
48 | echo "[ HgV ] Running Command #3 at $(date)"
49 | time mv /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/HKWYYCCXY-1.hgv.bam.bai /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/HKWYYCCXY-1.hgv.bai; hgvExitSafe 3 $?;
50 | echo "[ HgV ] Running Command #4 at $(date)"
51 | time rm -f /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/HKWYYCCXY-1.tmp.bam; hgvExitSafe 4 $?;
52 | echo "[ HgV ] Running Command #5 at $(date)"
53 | time /hgsc_software/BamUtil/bamUtil_1.0.13/bamUtil/bin/bam validate --in /stornext/snfs160/next-gen/Illumina/Instruments/E00535/180501_E00535_0306_BHKWYYCCXY/Results/Project_HKWYYCCXY/Sample_HKWYYCCXY-1/HKWYYCCXY-1.hgv.bam; hgvExitSafe 5 $?;
54 |
55 |
56 | #End with a report on how the job ran. This only works for PBS
57 | #with qstat -x enabled. Feel to free to change, users.
58 | echo "[ HgV ] Job statistics:"
59 | questat -j $PBS_JOBID
60 | ((((((-------Begin Run's Log-------))))))
61 | [ HgV ] Running Command #0 at Sat May 5 20:15:08 CDT 2018
62 | [ HgV ] Command 0 Finished on Sun May 6 19:03:44 CDT 2018
63 | [ HgV ] Exit Status: 0
64 | [ HgV ] Running Command #1 at Sun May 6 19:03:44 CDT 2018
65 | [ HgV ] Command 1 Finished on Mon May 7 03:16:33 CDT 2018
66 | [ HgV ] Exit Status: 0
67 | [ HgV ] Running Command #2 at Mon May 7 03:16:33 CDT 2018
68 | [ HgV ] Command 2 Finished on Mon May 7 03:34:50 CDT 2018
69 | [ HgV ] Exit Status: 0
70 | [ HgV ] Running Command #3 at Mon May 7 03:34:50 CDT 2018
71 | [ HgV ] Command 3 Finished on Mon May 7 03:34:50 CDT 2018
72 | [ HgV ] Exit Status: 0
73 | [ HgV ] Running Command #4 at Mon May 7 03:34:50 CDT 2018
74 | [ HgV ] Command 4 Finished on Mon May 7 03:34:50 CDT 2018
75 | [ HgV ] Exit Status: 0
76 | [ HgV ] Running Command #5 at Mon May 7 03:34:50 CDT 2018
77 | [ HgV ] Command 5 Finished on Mon May 7 04:17:52 CDT 2018
78 | [ HgV ] Exit Status: 0
79 | [ HgV ] Job statistics:
80 | {"id": "3435435.sug-prod-moab", "name": "HKWYYCCXY-1_Mapping", "cput": "204:22:08", "mem": "49355964kb", "wall": "32:02:03"}
81 |
--------------------------------------------------------------------------------
/Make.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 9,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "%%bash\n",
10 | "mkdir test"
11 | ]
12 | },
13 | {
14 | "cell_type": "code",
15 | "execution_count": 10,
16 | "metadata": {},
17 | "outputs": [
18 | {
19 | "name": "stdout",
20 | "output_type": "stream",
21 | "text": [
22 | "/Users/christis/Desktop/test\n"
23 | ]
24 | }
25 | ],
26 | "source": [
27 | "cd test/"
28 | ]
29 | },
30 | {
31 | "cell_type": "code",
32 | "execution_count": 13,
33 | "metadata": {},
34 | "outputs": [
35 | {
36 | "name": "stdout",
37 | "output_type": "stream",
38 | "text": [
39 | "mkdir: a/b: No such file or directory\r\n"
40 | ]
41 | }
42 | ],
43 | "source": [
44 | "mkdir a/b/c"
45 | ]
46 | },
47 | {
48 | "cell_type": "code",
49 | "execution_count": 14,
50 | "metadata": {},
51 | "outputs": [],
52 | "source": [
53 | "mkdir -p a/b/c"
54 | ]
55 | },
56 | {
57 | "cell_type": "code",
58 | "execution_count": 16,
59 | "metadata": {},
60 | "outputs": [
61 | {
62 | "name": "stdout",
63 | "output_type": "stream",
64 | "text": [
65 | "mkdir: created directory 'd'\r\n"
66 | ]
67 | }
68 | ],
69 | "source": [
70 | "mkdir -v d\n"
71 | ]
72 | },
73 | {
74 | "cell_type": "code",
75 | "execution_count": 17,
76 | "metadata": {},
77 | "outputs": [],
78 | "source": [
79 | "mkdir -m a+rwx easy"
80 | ]
81 | },
82 | {
83 | "cell_type": "code",
84 | "execution_count": 18,
85 | "metadata": {},
86 | "outputs": [
87 | {
88 | "name": "stdout",
89 | "output_type": "stream",
90 | "text": [
91 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/\r\n"
92 | ]
93 | }
94 | ],
95 | "source": [
96 | "ls\n"
97 | ]
98 | },
99 | {
100 | "cell_type": "code",
101 | "execution_count": 19,
102 | "metadata": {},
103 | "outputs": [
104 | {
105 | "name": "stdout",
106 | "output_type": "stream",
107 | "text": [
108 | "total 0\r\n",
109 | "drwxr-xr-x 3 christis staff 102B May 29 16:24 \u001b[34ma\u001b[m\u001b[m/\r\n",
110 | "drwxr-xr-x 2 christis staff 68B May 29 16:26 \u001b[34md\u001b[m\u001b[m/\r\n",
111 | "drwxrwxrwx 2 christis staff 68B May 29 16:26 \u001b[30m\u001b[43measy\u001b[m\u001b[m/\r\n"
112 | ]
113 | }
114 | ],
115 | "source": [
116 | "ls -lh"
117 | ]
118 | },
119 | {
120 | "cell_type": "code",
121 | "execution_count": 20,
122 | "metadata": {},
123 | "outputs": [
124 | {
125 | "name": "stdout",
126 | "output_type": "stream",
127 | "text": [
128 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/\r\n"
129 | ]
130 | }
131 | ],
132 | "source": [
133 | "ls\n"
134 | ]
135 | },
136 | {
137 | "cell_type": "code",
138 | "execution_count": 21,
139 | "metadata": {},
140 | "outputs": [
141 | {
142 | "ename": "SyntaxError",
143 | "evalue": "invalid syntax (, line 1)",
144 | "output_type": "error",
145 | "traceback": [
146 | "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m touch nothing\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
147 | ]
148 | }
149 | ],
150 | "source": [
151 | "touch nothing"
152 | ]
153 | },
154 | {
155 | "cell_type": "code",
156 | "execution_count": 22,
157 | "metadata": {},
158 | "outputs": [],
159 | "source": [
160 | "%%bash\n",
161 | "touch nothing"
162 | ]
163 | },
164 | {
165 | "cell_type": "code",
166 | "execution_count": 23,
167 | "metadata": {},
168 | "outputs": [
169 | {
170 | "name": "stdout",
171 | "output_type": "stream",
172 | "text": [
173 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/ nothing\r\n"
174 | ]
175 | }
176 | ],
177 | "source": [
178 | "ls"
179 | ]
180 | },
181 | {
182 | "cell_type": "code",
183 | "execution_count": 25,
184 | "metadata": {},
185 | "outputs": [],
186 | "source": [
187 | "%%bash\n",
188 | "touch nothing1 nothing2 nothing3"
189 | ]
190 | },
191 | {
192 | "cell_type": "code",
193 | "execution_count": 26,
194 | "metadata": {},
195 | "outputs": [
196 | {
197 | "name": "stdout",
198 | "output_type": "stream",
199 | "text": [
200 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/ nothing nothing1 nothing2 nothing3\r\n"
201 | ]
202 | }
203 | ],
204 | "source": [
205 | "ls"
206 | ]
207 | },
208 | {
209 | "cell_type": "code",
210 | "execution_count": 27,
211 | "metadata": {},
212 | "outputs": [
213 | {
214 | "name": "stdout",
215 | "output_type": "stream",
216 | "text": [
217 | "total 0\n",
218 | "drwxr-xr-x 3 christis staff 102B May 29 16:24 \u001b[34ma\u001b[m\u001b[m/\n",
219 | "drwxr-xr-x 2 christis staff 68B May 29 16:26 \u001b[34md\u001b[m\u001b[m/\n",
220 | "drwxrwxrwx 2 christis staff 68B May 29 16:26 \u001b[30m\u001b[43measy\u001b[m\u001b[m/\n",
221 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing\n",
222 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing1\n",
223 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing2\n",
224 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing3\n"
225 | ]
226 | }
227 | ],
228 | "source": [
229 | "ls -lh "
230 | ]
231 | },
232 | {
233 | "cell_type": "code",
234 | "execution_count": 28,
235 | "metadata": {},
236 | "outputs": [
237 | {
238 | "ename": "SyntaxError",
239 | "evalue": "invalid syntax (, line 1)",
240 | "output_type": "error",
241 | "traceback": [
242 | "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m touch nothing\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
243 | ]
244 | }
245 | ],
246 | "source": [
247 | "touch nothing"
248 | ]
249 | },
250 | {
251 | "cell_type": "code",
252 | "execution_count": 29,
253 | "metadata": {},
254 | "outputs": [],
255 | "source": [
256 | "%%bash\n",
257 | "touch nothing"
258 | ]
259 | },
260 | {
261 | "cell_type": "code",
262 | "execution_count": 30,
263 | "metadata": {},
264 | "outputs": [
265 | {
266 | "name": "stdout",
267 | "output_type": "stream",
268 | "text": [
269 | "total 0\r\n",
270 | "drwxr-xr-x 3 christis staff 102B May 29 16:24 \u001b[34ma\u001b[m\u001b[m/\r\n",
271 | "drwxr-xr-x 2 christis staff 68B May 29 16:26 \u001b[34md\u001b[m\u001b[m/\r\n",
272 | "drwxrwxrwx 2 christis staff 68B May 29 16:26 \u001b[30m\u001b[43measy\u001b[m\u001b[m/\r\n",
273 | "-rw-r--r-- 1 christis staff 0B May 30 09:34 nothing\r\n",
274 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing1\r\n",
275 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing2\r\n",
276 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing3\r\n"
277 | ]
278 | }
279 | ],
280 | "source": [
281 | "ls -lh"
282 | ]
283 | },
284 | {
285 | "cell_type": "code",
286 | "execution_count": 31,
287 | "metadata": {},
288 | "outputs": [],
289 | "source": [
290 | "%%bash\n",
291 | "touch -c -t 92230807 nothing"
292 | ]
293 | },
294 | {
295 | "cell_type": "code",
296 | "execution_count": 32,
297 | "metadata": {},
298 | "outputs": [
299 | {
300 | "name": "stdout",
301 | "output_type": "stream",
302 | "text": [
303 | "-rw-r--r-- 1 christis staff 0B Aug 23 2025 nothing\r\n"
304 | ]
305 | }
306 | ],
307 | "source": [
308 | "ls -lh nothing"
309 | ]
310 | },
311 | {
312 | "cell_type": "code",
313 | "execution_count": 53,
314 | "metadata": {},
315 | "outputs": [
316 | {
317 | "name": "stdout",
318 | "output_type": "stream",
319 | "text": [
320 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/ hello long_text nothing\r\n"
321 | ]
322 | }
323 | ],
324 | "source": [
325 | "ls\n"
326 | ]
327 | },
328 | {
329 | "cell_type": "code",
330 | "execution_count": 56,
331 | "metadata": {},
332 | "outputs": [
333 | {
334 | "name": "stdout",
335 | "output_type": "stream",
336 | "text": [
337 | "^C\r\n"
338 | ]
339 | }
340 | ],
341 | "source": [
342 | "cat > hello"
343 | ]
344 | },
345 | {
346 | "cell_type": "code",
347 | "execution_count": 57,
348 | "metadata": {},
349 | "outputs": [
350 | {
351 | "name": "stdout",
352 | "output_type": "stream",
353 | "text": [
354 | "\u001b[?1h\u001b=\r",
355 | "A ghost, though invisible, still is like a place\r\n",
356 | "your sight can knock on, echoing; but here\r\n",
357 | "within this thick black pelt, your strongest gaze\r\n",
358 | "will be absorbed and utterly disappear:\r\n",
359 | "\r\n",
360 | "just as a raving madman, when nothing else\r\n",
361 | "can ease him, charges into his dark night\r\n",
362 | "howling, pounds on the padded wall, and feels\r\n",
363 | "the rage being taken in and pacified.\r\n",
364 | "\r\n",
365 | "She seems to hide all looks that have ever fallen\r\n",
366 | "into her, so that, like an audience,\r\n",
367 | "she can look them over, menacing and sullen,\r\n",
368 | "and curl to sleep with them. But all at once\r\n",
369 | "\r\n",
370 | "as if awakened, she turns her face to yours;\r\n",
371 | "and with a shock, you see yourself, tiny,\r\n",
372 | "inside the golden amber of her eyeballs\r\n",
373 | "suspended, like a prehistoric fly. \r\n",
374 | "\r",
375 | "\u001b[K\u001b[?1l\u001b>"
376 | ]
377 | }
378 | ],
379 | "source": [
380 | "cat long_text | more\n"
381 | ]
382 | },
383 | {
384 | "cell_type": "code",
385 | "execution_count": 58,
386 | "metadata": {},
387 | "outputs": [
388 | {
389 | "name": "stdout",
390 | "output_type": "stream",
391 | "text": [
392 | "A ghost, though invisible, still is like a place\n",
393 | "your sight can knock on, echoing; but here\n",
394 | "within this thick black pelt, your strongest gaze\n",
395 | "will be absorbed and utterly disappear:\n",
396 | "\n",
397 | "just as a raving madman, when nothing else\n",
398 | "can ease him, charges into his dark night\n",
399 | "howling, pounds on the padded wall, and feels\n",
400 | "the rage being taken in and pacified.\n",
401 | "\n",
402 | "She seems to hide all looks that have ever fallen\n",
403 | "into her, so that, like an audience,\n",
404 | "she can look them over, menacing and sullen,\n",
405 | "and curl to sleep with them. But all at once\n",
406 | "\n",
407 | "as if awakened, she turns her face to yours;\n",
408 | "and with a shock, you see yourself, tiny,\n",
409 | "inside the golden amber of her eyeballs\n",
410 | "suspended, like a prehistoric fly. \n",
411 | "\u001b[K\u001b[7m(END)\u001b[m\u001b[K"
412 | ]
413 | }
414 | ],
415 | "source": [
416 | "cat long_text | less"
417 | ]
418 | },
419 | {
420 | "cell_type": "code",
421 | "execution_count": 59,
422 | "metadata": {},
423 | "outputs": [
424 | {
425 | "name": "stdout",
426 | "output_type": "stream",
427 | "text": [
428 | " 1\tA ghost, though invisible, still is like a place\r\n",
429 | " 2\tyour sight can knock on, echoing; but here\r\n",
430 | " 3\twithin this thick black pelt, your strongest gaze\r\n",
431 | " 4\twill be absorbed and utterly disappear:\r\n",
432 | " 5\t\r\n",
433 | " 6\tjust as a raving madman, when nothing else\r\n",
434 | " 7\tcan ease him, charges into his dark night\r\n",
435 | " 8\thowling, pounds on the padded wall, and feels\r\n",
436 | " 9\tthe rage being taken in and pacified.\r\n",
437 | " 10\t\r\n",
438 | " 11\tShe seems to hide all looks that have ever fallen\r\n",
439 | " 12\tinto her, so that, like an audience,\r\n",
440 | " 13\tshe can look them over, menacing and sullen,\r\n",
441 | " 14\tand curl to sleep with them. But all at once\r\n",
442 | " 15\t\r\n",
443 | " 16\tas if awakened, she turns her face to yours;\r\n",
444 | " 17\tand with a shock, you see yourself, tiny,\r\n",
445 | " 18\tinside the golden amber of her eyeballs\r\n",
446 | " 19\tsuspended, like a prehistoric fly. \r\n"
447 | ]
448 | }
449 | ],
450 | "source": [
451 | "cat -n long_text "
452 | ]
453 | },
454 | {
455 | "cell_type": "code",
456 | "execution_count": 60,
457 | "metadata": {},
458 | "outputs": [
459 | {
460 | "name": "stdout",
461 | "output_type": "stream",
462 | "text": [
463 | "A ghost, though invisible, still is like a place$\r\n",
464 | "your sight can knock on, echoing; but here$\r\n",
465 | "within this thick black pelt, your strongest gaze$\r\n",
466 | "will be absorbed and utterly disappear:$\r\n",
467 | "$\r\n",
468 | "just as a raving madman, when nothing else$\r\n",
469 | "can ease him, charges into his dark night$\r\n",
470 | "howling, pounds on the padded wall, and feels$\r\n",
471 | "the rage being taken in and pacified.$\r\n",
472 | "$\r\n",
473 | "She seems to hide all looks that have ever fallen$\r\n",
474 | "into her, so that, like an audience,$\r\n",
475 | "she can look them over, menacing and sullen,$\r\n",
476 | "and curl to sleep with them. But all at once$\r\n",
477 | "$\r\n",
478 | "as if awakened, she turns her face to yours;$\r\n",
479 | "and with a shock, you see yourself, tiny,$\r\n",
480 | "inside the golden amber of her eyeballs$\r\n",
481 | "suspended, like a prehistoric fly. $\r\n"
482 | ]
483 | }
484 | ],
485 | "source": [
486 | "cat -e long_text"
487 | ]
488 | },
489 | {
490 | "cell_type": "code",
491 | "execution_count": 62,
492 | "metadata": {},
493 | "outputs": [],
494 | "source": [
495 | "#cat -T long_text"
496 | ]
497 | },
498 | {
499 | "cell_type": "code",
500 | "execution_count": null,
501 | "metadata": {},
502 | "outputs": [],
503 | "source": [
504 | "#cat >> long_text"
505 | ]
506 | }
507 | ],
508 | "metadata": {
509 | "kernelspec": {
510 | "display_name": "Python 3",
511 | "language": "python",
512 | "name": "python3"
513 | },
514 | "language_info": {
515 | "codemirror_mode": {
516 | "name": "ipython",
517 | "version": 3
518 | },
519 | "file_extension": ".py",
520 | "mimetype": "text/x-python",
521 | "name": "python",
522 | "nbconvert_exporter": "python",
523 | "pygments_lexer": "ipython3",
524 | "version": "3.6.4"
525 | }
526 | },
527 | "nbformat": 4,
528 | "nbformat_minor": 2
529 | }
530 |
--------------------------------------------------------------------------------
/modules/make.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 9,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "%%bash\n",
10 | "mkdir test"
11 | ]
12 | },
13 | {
14 | "cell_type": "code",
15 | "execution_count": 10,
16 | "metadata": {},
17 | "outputs": [
18 | {
19 | "name": "stdout",
20 | "output_type": "stream",
21 | "text": [
22 | "/Users/christis/Desktop/test\n"
23 | ]
24 | }
25 | ],
26 | "source": [
27 | "cd test/"
28 | ]
29 | },
30 | {
31 | "cell_type": "code",
32 | "execution_count": 13,
33 | "metadata": {},
34 | "outputs": [
35 | {
36 | "name": "stdout",
37 | "output_type": "stream",
38 | "text": [
39 | "mkdir: a/b: No such file or directory\r\n"
40 | ]
41 | }
42 | ],
43 | "source": [
44 | "mkdir a/b/c"
45 | ]
46 | },
47 | {
48 | "cell_type": "code",
49 | "execution_count": 14,
50 | "metadata": {},
51 | "outputs": [],
52 | "source": [
53 | "mkdir -p a/b/c"
54 | ]
55 | },
56 | {
57 | "cell_type": "code",
58 | "execution_count": 16,
59 | "metadata": {},
60 | "outputs": [
61 | {
62 | "name": "stdout",
63 | "output_type": "stream",
64 | "text": [
65 | "mkdir: created directory 'd'\r\n"
66 | ]
67 | }
68 | ],
69 | "source": [
70 | "mkdir -v d\n"
71 | ]
72 | },
73 | {
74 | "cell_type": "code",
75 | "execution_count": 17,
76 | "metadata": {},
77 | "outputs": [],
78 | "source": [
79 | "mkdir -m a+rwx easy"
80 | ]
81 | },
82 | {
83 | "cell_type": "code",
84 | "execution_count": 18,
85 | "metadata": {},
86 | "outputs": [
87 | {
88 | "name": "stdout",
89 | "output_type": "stream",
90 | "text": [
91 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/\r\n"
92 | ]
93 | }
94 | ],
95 | "source": [
96 | "ls\n"
97 | ]
98 | },
99 | {
100 | "cell_type": "code",
101 | "execution_count": 19,
102 | "metadata": {},
103 | "outputs": [
104 | {
105 | "name": "stdout",
106 | "output_type": "stream",
107 | "text": [
108 | "total 0\r\n",
109 | "drwxr-xr-x 3 christis staff 102B May 29 16:24 \u001b[34ma\u001b[m\u001b[m/\r\n",
110 | "drwxr-xr-x 2 christis staff 68B May 29 16:26 \u001b[34md\u001b[m\u001b[m/\r\n",
111 | "drwxrwxrwx 2 christis staff 68B May 29 16:26 \u001b[30m\u001b[43measy\u001b[m\u001b[m/\r\n"
112 | ]
113 | }
114 | ],
115 | "source": [
116 | "ls -lh"
117 | ]
118 | },
119 | {
120 | "cell_type": "code",
121 | "execution_count": 20,
122 | "metadata": {},
123 | "outputs": [
124 | {
125 | "name": "stdout",
126 | "output_type": "stream",
127 | "text": [
128 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/\r\n"
129 | ]
130 | }
131 | ],
132 | "source": [
133 | "ls\n"
134 | ]
135 | },
136 | {
137 | "cell_type": "code",
138 | "execution_count": 21,
139 | "metadata": {},
140 | "outputs": [
141 | {
142 | "ename": "SyntaxError",
143 | "evalue": "invalid syntax (, line 1)",
144 | "output_type": "error",
145 | "traceback": [
146 | "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m touch nothing\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
147 | ]
148 | }
149 | ],
150 | "source": [
151 | "touch nothing"
152 | ]
153 | },
154 | {
155 | "cell_type": "code",
156 | "execution_count": 22,
157 | "metadata": {},
158 | "outputs": [],
159 | "source": [
160 | "%%bash\n",
161 | "touch nothing"
162 | ]
163 | },
164 | {
165 | "cell_type": "code",
166 | "execution_count": 23,
167 | "metadata": {},
168 | "outputs": [
169 | {
170 | "name": "stdout",
171 | "output_type": "stream",
172 | "text": [
173 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/ nothing\r\n"
174 | ]
175 | }
176 | ],
177 | "source": [
178 | "ls"
179 | ]
180 | },
181 | {
182 | "cell_type": "code",
183 | "execution_count": 25,
184 | "metadata": {},
185 | "outputs": [],
186 | "source": [
187 | "%%bash\n",
188 | "touch nothing1 nothing2 nothing3"
189 | ]
190 | },
191 | {
192 | "cell_type": "code",
193 | "execution_count": 26,
194 | "metadata": {},
195 | "outputs": [
196 | {
197 | "name": "stdout",
198 | "output_type": "stream",
199 | "text": [
200 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/ nothing nothing1 nothing2 nothing3\r\n"
201 | ]
202 | }
203 | ],
204 | "source": [
205 | "ls"
206 | ]
207 | },
208 | {
209 | "cell_type": "code",
210 | "execution_count": 27,
211 | "metadata": {},
212 | "outputs": [
213 | {
214 | "name": "stdout",
215 | "output_type": "stream",
216 | "text": [
217 | "total 0\n",
218 | "drwxr-xr-x 3 christis staff 102B May 29 16:24 \u001b[34ma\u001b[m\u001b[m/\n",
219 | "drwxr-xr-x 2 christis staff 68B May 29 16:26 \u001b[34md\u001b[m\u001b[m/\n",
220 | "drwxrwxrwx 2 christis staff 68B May 29 16:26 \u001b[30m\u001b[43measy\u001b[m\u001b[m/\n",
221 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing\n",
222 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing1\n",
223 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing2\n",
224 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing3\n"
225 | ]
226 | }
227 | ],
228 | "source": [
229 | "ls -lh "
230 | ]
231 | },
232 | {
233 | "cell_type": "code",
234 | "execution_count": 28,
235 | "metadata": {},
236 | "outputs": [
237 | {
238 | "ename": "SyntaxError",
239 | "evalue": "invalid syntax (, line 1)",
240 | "output_type": "error",
241 | "traceback": [
242 | "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m touch nothing\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
243 | ]
244 | }
245 | ],
246 | "source": [
247 | "touch nothing"
248 | ]
249 | },
250 | {
251 | "cell_type": "code",
252 | "execution_count": 29,
253 | "metadata": {},
254 | "outputs": [],
255 | "source": [
256 | "%%bash\n",
257 | "touch nothing"
258 | ]
259 | },
260 | {
261 | "cell_type": "code",
262 | "execution_count": 30,
263 | "metadata": {},
264 | "outputs": [
265 | {
266 | "name": "stdout",
267 | "output_type": "stream",
268 | "text": [
269 | "total 0\r\n",
270 | "drwxr-xr-x 3 christis staff 102B May 29 16:24 \u001b[34ma\u001b[m\u001b[m/\r\n",
271 | "drwxr-xr-x 2 christis staff 68B May 29 16:26 \u001b[34md\u001b[m\u001b[m/\r\n",
272 | "drwxrwxrwx 2 christis staff 68B May 29 16:26 \u001b[30m\u001b[43measy\u001b[m\u001b[m/\r\n",
273 | "-rw-r--r-- 1 christis staff 0B May 30 09:34 nothing\r\n",
274 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing1\r\n",
275 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing2\r\n",
276 | "-rw-r--r-- 1 christis staff 0B May 30 09:32 nothing3\r\n"
277 | ]
278 | }
279 | ],
280 | "source": [
281 | "ls -lh"
282 | ]
283 | },
284 | {
285 | "cell_type": "code",
286 | "execution_count": 31,
287 | "metadata": {},
288 | "outputs": [],
289 | "source": [
290 | "%%bash\n",
291 | "touch -c -t 92230807 nothing"
292 | ]
293 | },
294 | {
295 | "cell_type": "code",
296 | "execution_count": 32,
297 | "metadata": {},
298 | "outputs": [
299 | {
300 | "name": "stdout",
301 | "output_type": "stream",
302 | "text": [
303 | "-rw-r--r-- 1 christis staff 0B Aug 23 2025 nothing\r\n"
304 | ]
305 | }
306 | ],
307 | "source": [
308 | "ls -lh nothing"
309 | ]
310 | },
311 | {
312 | "cell_type": "code",
313 | "execution_count": 53,
314 | "metadata": {},
315 | "outputs": [
316 | {
317 | "name": "stdout",
318 | "output_type": "stream",
319 | "text": [
320 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/ hello long_text nothing\r\n"
321 | ]
322 | }
323 | ],
324 | "source": [
325 | "ls\n"
326 | ]
327 | },
328 | {
329 | "cell_type": "code",
330 | "execution_count": 56,
331 | "metadata": {},
332 | "outputs": [
333 | {
334 | "name": "stdout",
335 | "output_type": "stream",
336 | "text": [
337 | "^C\r\n"
338 | ]
339 | }
340 | ],
341 | "source": [
342 | "cat > hello"
343 | ]
344 | },
345 | {
346 | "cell_type": "code",
347 | "execution_count": 57,
348 | "metadata": {},
349 | "outputs": [
350 | {
351 | "name": "stdout",
352 | "output_type": "stream",
353 | "text": [
354 | "\u001b[?1h\u001b=\r",
355 | "A ghost, though invisible, still is like a place\r\n",
356 | "your sight can knock on, echoing; but here\r\n",
357 | "within this thick black pelt, your strongest gaze\r\n",
358 | "will be absorbed and utterly disappear:\r\n",
359 | "\r\n",
360 | "just as a raving madman, when nothing else\r\n",
361 | "can ease him, charges into his dark night\r\n",
362 | "howling, pounds on the padded wall, and feels\r\n",
363 | "the rage being taken in and pacified.\r\n",
364 | "\r\n",
365 | "She seems to hide all looks that have ever fallen\r\n",
366 | "into her, so that, like an audience,\r\n",
367 | "she can look them over, menacing and sullen,\r\n",
368 | "and curl to sleep with them. But all at once\r\n",
369 | "\r\n",
370 | "as if awakened, she turns her face to yours;\r\n",
371 | "and with a shock, you see yourself, tiny,\r\n",
372 | "inside the golden amber of her eyeballs\r\n",
373 | "suspended, like a prehistoric fly. \r\n",
374 | "\r",
375 | "\u001b[K\u001b[?1l\u001b>"
376 | ]
377 | }
378 | ],
379 | "source": [
380 | "cat long_text | more\n"
381 | ]
382 | },
383 | {
384 | "cell_type": "code",
385 | "execution_count": 58,
386 | "metadata": {},
387 | "outputs": [
388 | {
389 | "name": "stdout",
390 | "output_type": "stream",
391 | "text": [
392 | "A ghost, though invisible, still is like a place\n",
393 | "your sight can knock on, echoing; but here\n",
394 | "within this thick black pelt, your strongest gaze\n",
395 | "will be absorbed and utterly disappear:\n",
396 | "\n",
397 | "just as a raving madman, when nothing else\n",
398 | "can ease him, charges into his dark night\n",
399 | "howling, pounds on the padded wall, and feels\n",
400 | "the rage being taken in and pacified.\n",
401 | "\n",
402 | "She seems to hide all looks that have ever fallen\n",
403 | "into her, so that, like an audience,\n",
404 | "she can look them over, menacing and sullen,\n",
405 | "and curl to sleep with them. But all at once\n",
406 | "\n",
407 | "as if awakened, she turns her face to yours;\n",
408 | "and with a shock, you see yourself, tiny,\n",
409 | "inside the golden amber of her eyeballs\n",
410 | "suspended, like a prehistoric fly. \n",
411 | "\u001b[K\u001b[7m(END)\u001b[m\u001b[K"
412 | ]
413 | }
414 | ],
415 | "source": [
416 | "cat long_text | less"
417 | ]
418 | },
419 | {
420 | "cell_type": "code",
421 | "execution_count": 59,
422 | "metadata": {},
423 | "outputs": [
424 | {
425 | "name": "stdout",
426 | "output_type": "stream",
427 | "text": [
428 | " 1\tA ghost, though invisible, still is like a place\r\n",
429 | " 2\tyour sight can knock on, echoing; but here\r\n",
430 | " 3\twithin this thick black pelt, your strongest gaze\r\n",
431 | " 4\twill be absorbed and utterly disappear:\r\n",
432 | " 5\t\r\n",
433 | " 6\tjust as a raving madman, when nothing else\r\n",
434 | " 7\tcan ease him, charges into his dark night\r\n",
435 | " 8\thowling, pounds on the padded wall, and feels\r\n",
436 | " 9\tthe rage being taken in and pacified.\r\n",
437 | " 10\t\r\n",
438 | " 11\tShe seems to hide all looks that have ever fallen\r\n",
439 | " 12\tinto her, so that, like an audience,\r\n",
440 | " 13\tshe can look them over, menacing and sullen,\r\n",
441 | " 14\tand curl to sleep with them. But all at once\r\n",
442 | " 15\t\r\n",
443 | " 16\tas if awakened, she turns her face to yours;\r\n",
444 | " 17\tand with a shock, you see yourself, tiny,\r\n",
445 | " 18\tinside the golden amber of her eyeballs\r\n",
446 | " 19\tsuspended, like a prehistoric fly. \r\n"
447 | ]
448 | }
449 | ],
450 | "source": [
451 | "cat -n long_text "
452 | ]
453 | },
454 | {
455 | "cell_type": "code",
456 | "execution_count": 60,
457 | "metadata": {},
458 | "outputs": [
459 | {
460 | "name": "stdout",
461 | "output_type": "stream",
462 | "text": [
463 | "A ghost, though invisible, still is like a place$\r\n",
464 | "your sight can knock on, echoing; but here$\r\n",
465 | "within this thick black pelt, your strongest gaze$\r\n",
466 | "will be absorbed and utterly disappear:$\r\n",
467 | "$\r\n",
468 | "just as a raving madman, when nothing else$\r\n",
469 | "can ease him, charges into his dark night$\r\n",
470 | "howling, pounds on the padded wall, and feels$\r\n",
471 | "the rage being taken in and pacified.$\r\n",
472 | "$\r\n",
473 | "She seems to hide all looks that have ever fallen$\r\n",
474 | "into her, so that, like an audience,$\r\n",
475 | "she can look them over, menacing and sullen,$\r\n",
476 | "and curl to sleep with them. But all at once$\r\n",
477 | "$\r\n",
478 | "as if awakened, she turns her face to yours;$\r\n",
479 | "and with a shock, you see yourself, tiny,$\r\n",
480 | "inside the golden amber of her eyeballs$\r\n",
481 | "suspended, like a prehistoric fly. $\r\n"
482 | ]
483 | }
484 | ],
485 | "source": [
486 | "cat -e long_text"
487 | ]
488 | },
489 | {
490 | "cell_type": "code",
491 | "execution_count": 62,
492 | "metadata": {},
493 | "outputs": [],
494 | "source": [
495 | "#cat -T long_text"
496 | ]
497 | },
498 | {
499 | "cell_type": "code",
500 | "execution_count": null,
501 | "metadata": {},
502 | "outputs": [],
503 | "source": [
504 | "#cat >> long_text"
505 | ]
506 | }
507 | ],
508 | "metadata": {
509 | "kernelspec": {
510 | "display_name": "Python 3",
511 | "language": "python",
512 | "name": "python3"
513 | },
514 | "language_info": {
515 | "codemirror_mode": {
516 | "name": "ipython",
517 | "version": 3
518 | },
519 | "file_extension": ".py",
520 | "mimetype": "text/x-python",
521 | "name": "python",
522 | "nbconvert_exporter": "python",
523 | "pygments_lexer": "ipython3",
524 | "version": "3.6.4"
525 | }
526 | },
527 | "nbformat": 4,
528 | "nbformat_minor": 2
529 | }
530 |
--------------------------------------------------------------------------------
/Control_.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {
6 | "deletable": true,
7 | "editable": true
8 | },
9 | "source": [
10 | "# Pushd/popd"
11 | ]
12 | },
13 | {
14 | "cell_type": "markdown",
15 | "metadata": {
16 | "deletable": true,
17 | "editable": true
18 | },
19 | "source": [
20 | "## Think of a bucket"
21 | ]
22 | },
23 | {
24 | "cell_type": "code",
25 | "execution_count": 6,
26 | "metadata": {
27 | "collapsed": true,
28 | "deletable": true,
29 | "editable": true
30 | },
31 | "outputs": [],
32 | "source": [
33 | "%%bash\n",
34 | "cd test"
35 | ]
36 | },
37 | {
38 | "cell_type": "code",
39 | "execution_count": 8,
40 | "metadata": {
41 | "collapsed": false,
42 | "deletable": true,
43 | "editable": true
44 | },
45 | "outputs": [
46 | {
47 | "name": "stdout",
48 | "output_type": "stream",
49 | "text": [
50 | "/Users/christis/Desktop/test\n"
51 | ]
52 | }
53 | ],
54 | "source": [
55 | "cd test"
56 | ]
57 | },
58 | {
59 | "cell_type": "code",
60 | "execution_count": 9,
61 | "metadata": {
62 | "collapsed": false,
63 | "deletable": true,
64 | "editable": true
65 | },
66 | "outputs": [
67 | {
68 | "name": "stdout",
69 | "output_type": "stream",
70 | "text": [
71 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/ hello long_text nothing\r\n"
72 | ]
73 | }
74 | ],
75 | "source": [
76 | "ls"
77 | ]
78 | },
79 | {
80 | "cell_type": "code",
81 | "execution_count": 10,
82 | "metadata": {
83 | "collapsed": true,
84 | "deletable": true,
85 | "editable": true
86 | },
87 | "outputs": [],
88 | "source": [
89 | "mkdir -p a/b/c/d/"
90 | ]
91 | },
92 | {
93 | "cell_type": "code",
94 | "execution_count": 12,
95 | "metadata": {
96 | "collapsed": false,
97 | "deletable": true,
98 | "editable": true
99 | },
100 | "outputs": [
101 | {
102 | "name": "stdout",
103 | "output_type": "stream",
104 | "text": [
105 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/ hello long_text nothing\r\n"
106 | ]
107 | }
108 | ],
109 | "source": [
110 | "ls"
111 | ]
112 | },
113 | {
114 | "cell_type": "code",
115 | "execution_count": 19,
116 | "metadata": {
117 | "collapsed": false,
118 | "deletable": true,
119 | "editable": true
120 | },
121 | "outputs": [
122 | {
123 | "name": "stdout",
124 | "output_type": "stream",
125 | "text": [
126 | "d\n"
127 | ]
128 | }
129 | ],
130 | "source": [
131 | "%%bash\n",
132 | "ls"
133 | ]
134 | },
135 | {
136 | "cell_type": "code",
137 | "execution_count": 23,
138 | "metadata": {
139 | "collapsed": false,
140 | "deletable": true,
141 | "editable": true
142 | },
143 | "outputs": [
144 | {
145 | "data": {
146 | "text/plain": [
147 | "'/Users/christis/Desktop/test'"
148 | ]
149 | },
150 | "execution_count": 23,
151 | "metadata": {},
152 | "output_type": "execute_result"
153 | }
154 | ],
155 | "source": [
156 | "pwd"
157 | ]
158 | },
159 | {
160 | "cell_type": "code",
161 | "execution_count": 26,
162 | "metadata": {
163 | "collapsed": false,
164 | "deletable": true,
165 | "editable": true
166 | },
167 | "outputs": [
168 | {
169 | "name": "stdout",
170 | "output_type": "stream",
171 | "text": [
172 | "/Users/christis/Desktop/test/a\n"
173 | ]
174 | },
175 | {
176 | "data": {
177 | "text/plain": [
178 | "['~/Desktop/test/a', '~/Desktop/test/a', '~/Desktop/test', '~/Desktop/test']"
179 | ]
180 | },
181 | "execution_count": 26,
182 | "metadata": {},
183 | "output_type": "execute_result"
184 | }
185 | ],
186 | "source": [
187 | "pushd ~/Desktop/test/a\n"
188 | ]
189 | },
190 | {
191 | "cell_type": "code",
192 | "execution_count": 27,
193 | "metadata": {
194 | "collapsed": false,
195 | "deletable": true,
196 | "editable": true
197 | },
198 | "outputs": [
199 | {
200 | "name": "stdout",
201 | "output_type": "stream",
202 | "text": [
203 | "/Users/christis/Desktop/test/a\n",
204 | "popd -> ~/Desktop/test/a\n"
205 | ]
206 | }
207 | ],
208 | "source": [
209 | "popd"
210 | ]
211 | },
212 | {
213 | "cell_type": "markdown",
214 | "metadata": {
215 | "deletable": true,
216 | "editable": true
217 | },
218 | "source": [
219 | "# Deleting files \n"
220 | ]
221 | },
222 | {
223 | "cell_type": "code",
224 | "execution_count": 1,
225 | "metadata": {
226 | "collapsed": false,
227 | "deletable": true,
228 | "editable": true
229 | },
230 | "outputs": [
231 | {
232 | "name": "stdout",
233 | "output_type": "stream",
234 | "text": [
235 | "2018_youth_group_finances.xlsx\n",
236 | "32424185consent.pdf\n",
237 | "6ZD0CC44 (1).pdf\n",
238 | "Christian_Sanchez_UHD_final_a.docx\n",
239 | "Christian_Sanchez_UH_final_a .docx\n",
240 | "Christian_Sanchez_UH_final_b.docx\n",
241 | "Christian_Sanchezcompleted-transcript-14430206.pdf\n",
242 | "ChronicITP.5.10.18.xlsx\n",
243 | "Control (1).ipynb\n",
244 | "Control.ipynb\n",
245 | "MSDA_Reference_Form.pdf\n",
246 | "Make.ipynb\n",
247 | "Results_05-16-2018.xls\n",
248 | "Screen Shot 2018-05-16 at 10.07.16 AM.png\n",
249 | "Screen Shot 2018-05-18 at 1.55.27 PM.png\n",
250 | "Screen Shot 2018-05-21 at 12.07.25 PM.png\n",
251 | "Screen Shot 2018-05-22 at 1.51.37 PM.png\n",
252 | "Screen Shot 2018-05-22 at 11.14.50 AM.png\n",
253 | "Screen Shot 2018-05-29 at 12.50.46 PM.png\n",
254 | "Sym_link_report.xlsx\n",
255 | "UDN_code.txt\n",
256 | "Untitled.ipynb\n",
257 | "Untitled1.ipynb\n",
258 | "Untitled2.ipynb\n",
259 | "afib_test\n",
260 | "biospecimen.project-TCGA-OV.2018-05-07.tar.gz\n",
261 | "cS_personal.docx\n",
262 | "cS_personal_final_d.docx\n",
263 | "christian_sanchez_update.pdf\n",
264 | "code_practice\n",
265 | "dice.py\n",
266 | "exceptional\n",
267 | "illuminaBreakdownV2.xls\n",
268 | "mfts\n",
269 | "namedtuple.html\n",
270 | "namedtuple.ipynb\n",
271 | "old_pptc\n",
272 | "ovarian\n",
273 | "pandasexcercise\n",
274 | "personal\n",
275 | "pointed\n",
276 | "pptc_working\n",
277 | "py36-test-a.html\n",
278 | "py36-test-a.ipynb\n",
279 | "python_type_annotations.ipynb\n",
280 | "python_type_annotations.py\n",
281 | "random.ipynb\n",
282 | "resume_sanchez_2018_final_a.docx\n",
283 | "resume_sanchez_2018_final_b.docx\n",
284 | "resume_sanchez_2018_final_b.pdf\n",
285 | "scanned\n",
286 | "school_2018spring\n",
287 | "string_fromatting.ipynb\n",
288 | "tcga_ova_.tsv.xlsx\n",
289 | "tcga_ova_a.xlsx\n",
290 | "temp_holding\n",
291 | "test\n",
292 | "test_1.py\n",
293 | "training\n",
294 | "~$tcga_ova_.tsv.xlsx\n"
295 | ]
296 | }
297 | ],
298 | "source": [
299 | "%%bash\n",
300 | "ls"
301 | ]
302 | },
303 | {
304 | "cell_type": "code",
305 | "execution_count": 2,
306 | "metadata": {
307 | "collapsed": false
308 | },
309 | "outputs": [
310 | {
311 | "name": "stdout",
312 | "output_type": "stream",
313 | "text": [
314 | "rm pointed\n"
315 | ]
316 | }
317 | ],
318 | "source": [
319 | "%%bash\n",
320 | "echo rm pointed "
321 | ]
322 | },
323 | {
324 | "cell_type": "code",
325 | "execution_count": 4,
326 | "metadata": {
327 | "collapsed": false
328 | },
329 | "outputs": [
330 | {
331 | "name": "stdout",
332 | "output_type": "stream",
333 | "text": [
334 | "rm -f pointed\n"
335 | ]
336 | }
337 | ],
338 | "source": [
339 | "%%bash\n",
340 | "echo rm -f pointed"
341 | ]
342 | },
343 | {
344 | "cell_type": "markdown",
345 | "metadata": {},
346 | "source": [
347 | "## Multiple ways to remove a directory"
348 | ]
349 | },
350 | {
351 | "cell_type": "code",
352 | "execution_count": 5,
353 | "metadata": {
354 | "collapsed": true
355 | },
356 | "outputs": [],
357 | "source": [
358 | "%%bash \n",
359 | "mkdir fake_dir\n",
360 | "cd fake_dir\n",
361 | "touch fake_file"
362 | ]
363 | },
364 | {
365 | "cell_type": "code",
366 | "execution_count": 8,
367 | "metadata": {
368 | "collapsed": false
369 | },
370 | "outputs": [
371 | {
372 | "name": "stdout",
373 | "output_type": "stream",
374 | "text": [
375 | "fake_file\n"
376 | ]
377 | }
378 | ],
379 | "source": [
380 | "%%bash\n",
381 | "ls fake_dir/"
382 | ]
383 | },
384 | {
385 | "cell_type": "code",
386 | "execution_count": 9,
387 | "metadata": {
388 | "collapsed": false
389 | },
390 | "outputs": [
391 | {
392 | "name": "stdout",
393 | "output_type": "stream",
394 | "text": [
395 | "rmdir: fake_dir/: Directory not empty\r\n"
396 | ]
397 | }
398 | ],
399 | "source": [
400 | "rmdir fake_dir/\n"
401 | ]
402 | },
403 | {
404 | "cell_type": "markdown",
405 | "metadata": {},
406 | "source": [
407 | "### rmdir has \"safety feature\" that prevents folders from being deleted if are not empty"
408 | ]
409 | },
410 | {
411 | "cell_type": "markdown",
412 | "metadata": {},
413 | "source": [
414 | "#### use this only if positive and double check"
415 | ]
416 | },
417 | {
418 | "cell_type": "code",
419 | "execution_count": 10,
420 | "metadata": {
421 | "collapsed": false
422 | },
423 | "outputs": [
424 | {
425 | "ename": "SyntaxError",
426 | "evalue": "invalid syntax (, line 1)",
427 | "output_type": "error",
428 | "traceback": [
429 | "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m echo rm -rf fake_dir\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
430 | ]
431 | }
432 | ],
433 | "source": [
434 | "echo rm -rf fake_dir"
435 | ]
436 | },
437 | {
438 | "cell_type": "markdown",
439 | "metadata": {},
440 | "source": [
441 | "# Permissions for a file (chmod)\n"
442 | ]
443 | },
444 | {
445 | "cell_type": "markdown",
446 | "metadata": {},
447 | "source": [
448 | "## There are thre different types of permissions\n",
449 | "### readable (r)\n",
450 | "### executable (x)\n",
451 | "### writeable (w)\n",
452 | "## Permissions can be applied to different people \n",
453 | "### just the user\n",
454 | "### group\n",
455 | "### and \"o\" everyone\n"
456 | ]
457 | },
458 | {
459 | "cell_type": "code",
460 | "execution_count": 11,
461 | "metadata": {
462 | "collapsed": false
463 | },
464 | "outputs": [
465 | {
466 | "name": "stdout",
467 | "output_type": "stream",
468 | "text": [
469 | "-rw-r--r-- 1 christis staff 0B Jun 5 12:25 example_file\n"
470 | ]
471 | }
472 | ],
473 | "source": [
474 | "%%bash \n",
475 | "touch example_file\n",
476 | "ls -lh example_file"
477 | ]
478 | },
479 | {
480 | "cell_type": "markdown",
481 | "metadata": {},
482 | "source": [
483 | "## Can use octals to explain\n",
484 | "### read = 4\n",
485 | "### write = 2\n",
486 | "### execute =1\n",
487 | "### First number is for user, second for group, and third for others"
488 | ]
489 | },
490 | {
491 | "cell_type": "code",
492 | "execution_count": 14,
493 | "metadata": {
494 | "collapsed": false
495 | },
496 | "outputs": [
497 | {
498 | "name": "stdout",
499 | "output_type": "stream",
500 | "text": [
501 | "-rw-r--r-- 1 christis staff 0B Jun 5 12:25 example_file\n"
502 | ]
503 | }
504 | ],
505 | "source": [
506 | "%%bash\n",
507 | "chmod 644 example_file\n",
508 | "ls -lh example_file"
509 | ]
510 | },
511 | {
512 | "cell_type": "code",
513 | "execution_count": 16,
514 | "metadata": {
515 | "collapsed": false
516 | },
517 | "outputs": [
518 | {
519 | "name": "stdout",
520 | "output_type": "stream",
521 | "text": [
522 | "-rw----r-- 1 christis staff 0B Jun 5 12:25 example_file\n"
523 | ]
524 | }
525 | ],
526 | "source": [
527 | "%%bash\n",
528 | "chmod 604 example_file\n",
529 | "ls -lh example_file"
530 | ]
531 | },
532 | {
533 | "cell_type": "code",
534 | "execution_count": 18,
535 | "metadata": {
536 | "collapsed": false
537 | },
538 | "outputs": [
539 | {
540 | "name": "stdout",
541 | "output_type": "stream",
542 | "text": [
543 | "-rwxrwxrwx 1 christis staff 0B Jun 5 12:25 example_file\n"
544 | ]
545 | }
546 | ],
547 | "source": [
548 | "%%bash \n",
549 | "chmod 777 example_file\n",
550 | "ls -lh example_file"
551 | ]
552 | },
553 | {
554 | "cell_type": "code",
555 | "execution_count": 23,
556 | "metadata": {
557 | "collapsed": false
558 | },
559 | "outputs": [
560 | {
561 | "name": "stdout",
562 | "output_type": "stream",
563 | "text": [
564 | "-rw-r--r-- 1 christis staff 0B Jun 5 12:36 paranoid\n"
565 | ]
566 | }
567 | ],
568 | "source": [
569 | "%%bash\n",
570 | "touch paranoid\n",
571 | "umask 0077 paranoid #only the creator can modify and use the file\n",
572 | "ls -lh paranoid"
573 | ]
574 | },
575 | {
576 | "cell_type": "code",
577 | "execution_count": 26,
578 | "metadata": {
579 | "collapsed": false
580 | },
581 | "outputs": [
582 | {
583 | "name": "stdout",
584 | "output_type": "stream",
585 | "text": [
586 | "-rwxr--r-- 1 christis staff 0B Jun 5 12:42 single_perm\n",
587 | "-rwxrwxrwx 1 christis staff 0B Jun 5 12:42 loose\n"
588 | ]
589 | }
590 | ],
591 | "source": [
592 | "%%bash \n",
593 | "touch single_perm\n",
594 | "chmod u+x single_perm\n",
595 | "ls -lh single_perm\n",
596 | "\n",
597 | "touch loose\n",
598 | "chmod a+rwx loose \n",
599 | "ls -lh loose"
600 | ]
601 | },
602 | {
603 | "cell_type": "code",
604 | "execution_count": 28,
605 | "metadata": {
606 | "collapsed": false
607 | },
608 | "outputs": [
609 | {
610 | "name": "stdout",
611 | "output_type": "stream",
612 | "text": [
613 | "---------- 1 christis staff 0B Jun 5 12:42 loose\n"
614 | ]
615 | }
616 | ],
617 | "source": [
618 | "%%bash\n",
619 | "chmod a-rwx loose\n",
620 | "ls -lh loose"
621 | ]
622 | },
623 | {
624 | "cell_type": "code",
625 | "execution_count": 29,
626 | "metadata": {
627 | "collapsed": true
628 | },
629 | "outputs": [],
630 | "source": [
631 | "%%bash\n",
632 | "mkdir tesssst\n",
633 | "chmod -R a+rwx tesssst"
634 | ]
635 | },
636 | {
637 | "cell_type": "code",
638 | "execution_count": null,
639 | "metadata": {
640 | "collapsed": true
641 | },
642 | "outputs": [],
643 | "source": []
644 | }
645 | ],
646 | "metadata": {
647 | "kernelspec": {
648 | "display_name": "Python 3",
649 | "language": "python",
650 | "name": "python3"
651 | },
652 | "language_info": {
653 | "codemirror_mode": {
654 | "name": "ipython",
655 | "version": 3
656 | },
657 | "file_extension": ".py",
658 | "mimetype": "text/x-python",
659 | "name": "python",
660 | "nbconvert_exporter": "python",
661 | "pygments_lexer": "ipython3",
662 | "version": "3.5.3"
663 | }
664 | },
665 | "nbformat": 4,
666 | "nbformat_minor": 2
667 | }
668 |
--------------------------------------------------------------------------------
/modules/control_.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {
6 | "deletable": true,
7 | "editable": true
8 | },
9 | "source": [
10 | "# Pushd/popd"
11 | ]
12 | },
13 | {
14 | "cell_type": "markdown",
15 | "metadata": {
16 | "deletable": true,
17 | "editable": true
18 | },
19 | "source": [
20 | "## Think of a bucket"
21 | ]
22 | },
23 | {
24 | "cell_type": "code",
25 | "execution_count": 6,
26 | "metadata": {
27 | "collapsed": true,
28 | "deletable": true,
29 | "editable": true
30 | },
31 | "outputs": [],
32 | "source": [
33 | "%%bash\n",
34 | "cd test"
35 | ]
36 | },
37 | {
38 | "cell_type": "code",
39 | "execution_count": 8,
40 | "metadata": {
41 | "collapsed": false,
42 | "deletable": true,
43 | "editable": true
44 | },
45 | "outputs": [
46 | {
47 | "name": "stdout",
48 | "output_type": "stream",
49 | "text": [
50 | "/Users/christis/Desktop/test\n"
51 | ]
52 | }
53 | ],
54 | "source": [
55 | "cd test"
56 | ]
57 | },
58 | {
59 | "cell_type": "code",
60 | "execution_count": 9,
61 | "metadata": {
62 | "collapsed": false,
63 | "deletable": true,
64 | "editable": true
65 | },
66 | "outputs": [
67 | {
68 | "name": "stdout",
69 | "output_type": "stream",
70 | "text": [
71 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/ hello long_text nothing\r\n"
72 | ]
73 | }
74 | ],
75 | "source": [
76 | "ls"
77 | ]
78 | },
79 | {
80 | "cell_type": "code",
81 | "execution_count": 10,
82 | "metadata": {
83 | "collapsed": true,
84 | "deletable": true,
85 | "editable": true
86 | },
87 | "outputs": [],
88 | "source": [
89 | "mkdir -p a/b/c/d/"
90 | ]
91 | },
92 | {
93 | "cell_type": "code",
94 | "execution_count": 12,
95 | "metadata": {
96 | "collapsed": false,
97 | "deletable": true,
98 | "editable": true
99 | },
100 | "outputs": [
101 | {
102 | "name": "stdout",
103 | "output_type": "stream",
104 | "text": [
105 | "\u001b[34ma\u001b[m\u001b[m/ \u001b[34md\u001b[m\u001b[m/ \u001b[30m\u001b[43measy\u001b[m\u001b[m/ hello long_text nothing\r\n"
106 | ]
107 | }
108 | ],
109 | "source": [
110 | "ls"
111 | ]
112 | },
113 | {
114 | "cell_type": "code",
115 | "execution_count": 19,
116 | "metadata": {
117 | "collapsed": false,
118 | "deletable": true,
119 | "editable": true
120 | },
121 | "outputs": [
122 | {
123 | "name": "stdout",
124 | "output_type": "stream",
125 | "text": [
126 | "d\n"
127 | ]
128 | }
129 | ],
130 | "source": [
131 | "%%bash\n",
132 | "ls"
133 | ]
134 | },
135 | {
136 | "cell_type": "code",
137 | "execution_count": 23,
138 | "metadata": {
139 | "collapsed": false,
140 | "deletable": true,
141 | "editable": true
142 | },
143 | "outputs": [
144 | {
145 | "data": {
146 | "text/plain": [
147 | "'/Users/christis/Desktop/test'"
148 | ]
149 | },
150 | "execution_count": 23,
151 | "metadata": {},
152 | "output_type": "execute_result"
153 | }
154 | ],
155 | "source": [
156 | "pwd"
157 | ]
158 | },
159 | {
160 | "cell_type": "code",
161 | "execution_count": 26,
162 | "metadata": {
163 | "collapsed": false,
164 | "deletable": true,
165 | "editable": true
166 | },
167 | "outputs": [
168 | {
169 | "name": "stdout",
170 | "output_type": "stream",
171 | "text": [
172 | "/Users/christis/Desktop/test/a\n"
173 | ]
174 | },
175 | {
176 | "data": {
177 | "text/plain": [
178 | "['~/Desktop/test/a', '~/Desktop/test/a', '~/Desktop/test', '~/Desktop/test']"
179 | ]
180 | },
181 | "execution_count": 26,
182 | "metadata": {},
183 | "output_type": "execute_result"
184 | }
185 | ],
186 | "source": [
187 | "pushd ~/Desktop/test/a\n"
188 | ]
189 | },
190 | {
191 | "cell_type": "code",
192 | "execution_count": 27,
193 | "metadata": {
194 | "collapsed": false,
195 | "deletable": true,
196 | "editable": true
197 | },
198 | "outputs": [
199 | {
200 | "name": "stdout",
201 | "output_type": "stream",
202 | "text": [
203 | "/Users/christis/Desktop/test/a\n",
204 | "popd -> ~/Desktop/test/a\n"
205 | ]
206 | }
207 | ],
208 | "source": [
209 | "popd"
210 | ]
211 | },
212 | {
213 | "cell_type": "markdown",
214 | "metadata": {
215 | "deletable": true,
216 | "editable": true
217 | },
218 | "source": [
219 | "# Deleting files \n"
220 | ]
221 | },
222 | {
223 | "cell_type": "code",
224 | "execution_count": 1,
225 | "metadata": {
226 | "collapsed": false,
227 | "deletable": true,
228 | "editable": true
229 | },
230 | "outputs": [
231 | {
232 | "name": "stdout",
233 | "output_type": "stream",
234 | "text": [
235 | "2018_youth_group_finances.xlsx\n",
236 | "32424185consent.pdf\n",
237 | "6ZD0CC44 (1).pdf\n",
238 | "Christian_Sanchez_UHD_final_a.docx\n",
239 | "Christian_Sanchez_UH_final_a .docx\n",
240 | "Christian_Sanchez_UH_final_b.docx\n",
241 | "Christian_Sanchezcompleted-transcript-14430206.pdf\n",
242 | "ChronicITP.5.10.18.xlsx\n",
243 | "Control (1).ipynb\n",
244 | "Control.ipynb\n",
245 | "MSDA_Reference_Form.pdf\n",
246 | "Make.ipynb\n",
247 | "Results_05-16-2018.xls\n",
248 | "Screen Shot 2018-05-16 at 10.07.16 AM.png\n",
249 | "Screen Shot 2018-05-18 at 1.55.27 PM.png\n",
250 | "Screen Shot 2018-05-21 at 12.07.25 PM.png\n",
251 | "Screen Shot 2018-05-22 at 1.51.37 PM.png\n",
252 | "Screen Shot 2018-05-22 at 11.14.50 AM.png\n",
253 | "Screen Shot 2018-05-29 at 12.50.46 PM.png\n",
254 | "Sym_link_report.xlsx\n",
255 | "UDN_code.txt\n",
256 | "Untitled.ipynb\n",
257 | "Untitled1.ipynb\n",
258 | "Untitled2.ipynb\n",
259 | "afib_test\n",
260 | "biospecimen.project-TCGA-OV.2018-05-07.tar.gz\n",
261 | "cS_personal.docx\n",
262 | "cS_personal_final_d.docx\n",
263 | "christian_sanchez_update.pdf\n",
264 | "code_practice\n",
265 | "dice.py\n",
266 | "exceptional\n",
267 | "illuminaBreakdownV2.xls\n",
268 | "mfts\n",
269 | "namedtuple.html\n",
270 | "namedtuple.ipynb\n",
271 | "old_pptc\n",
272 | "ovarian\n",
273 | "pandasexcercise\n",
274 | "personal\n",
275 | "pointed\n",
276 | "pptc_working\n",
277 | "py36-test-a.html\n",
278 | "py36-test-a.ipynb\n",
279 | "python_type_annotations.ipynb\n",
280 | "python_type_annotations.py\n",
281 | "random.ipynb\n",
282 | "resume_sanchez_2018_final_a.docx\n",
283 | "resume_sanchez_2018_final_b.docx\n",
284 | "resume_sanchez_2018_final_b.pdf\n",
285 | "scanned\n",
286 | "school_2018spring\n",
287 | "string_fromatting.ipynb\n",
288 | "tcga_ova_.tsv.xlsx\n",
289 | "tcga_ova_a.xlsx\n",
290 | "temp_holding\n",
291 | "test\n",
292 | "test_1.py\n",
293 | "training\n",
294 | "~$tcga_ova_.tsv.xlsx\n"
295 | ]
296 | }
297 | ],
298 | "source": [
299 | "%%bash\n",
300 | "ls"
301 | ]
302 | },
303 | {
304 | "cell_type": "code",
305 | "execution_count": 2,
306 | "metadata": {
307 | "collapsed": false
308 | },
309 | "outputs": [
310 | {
311 | "name": "stdout",
312 | "output_type": "stream",
313 | "text": [
314 | "rm pointed\n"
315 | ]
316 | }
317 | ],
318 | "source": [
319 | "%%bash\n",
320 | "echo rm pointed "
321 | ]
322 | },
323 | {
324 | "cell_type": "code",
325 | "execution_count": 4,
326 | "metadata": {
327 | "collapsed": false
328 | },
329 | "outputs": [
330 | {
331 | "name": "stdout",
332 | "output_type": "stream",
333 | "text": [
334 | "rm -f pointed\n"
335 | ]
336 | }
337 | ],
338 | "source": [
339 | "%%bash\n",
340 | "echo rm -f pointed"
341 | ]
342 | },
343 | {
344 | "cell_type": "markdown",
345 | "metadata": {},
346 | "source": [
347 | "## Multiple ways to remove a directory"
348 | ]
349 | },
350 | {
351 | "cell_type": "code",
352 | "execution_count": 5,
353 | "metadata": {
354 | "collapsed": true
355 | },
356 | "outputs": [],
357 | "source": [
358 | "%%bash \n",
359 | "mkdir fake_dir\n",
360 | "cd fake_dir\n",
361 | "touch fake_file"
362 | ]
363 | },
364 | {
365 | "cell_type": "code",
366 | "execution_count": 8,
367 | "metadata": {
368 | "collapsed": false
369 | },
370 | "outputs": [
371 | {
372 | "name": "stdout",
373 | "output_type": "stream",
374 | "text": [
375 | "fake_file\n"
376 | ]
377 | }
378 | ],
379 | "source": [
380 | "%%bash\n",
381 | "ls fake_dir/"
382 | ]
383 | },
384 | {
385 | "cell_type": "code",
386 | "execution_count": 9,
387 | "metadata": {
388 | "collapsed": false
389 | },
390 | "outputs": [
391 | {
392 | "name": "stdout",
393 | "output_type": "stream",
394 | "text": [
395 | "rmdir: fake_dir/: Directory not empty\r\n"
396 | ]
397 | }
398 | ],
399 | "source": [
400 | "rmdir fake_dir/\n"
401 | ]
402 | },
403 | {
404 | "cell_type": "markdown",
405 | "metadata": {},
406 | "source": [
407 | "### rmdir has \"safety feature\" that prevents folders from being deleted if are not empty"
408 | ]
409 | },
410 | {
411 | "cell_type": "markdown",
412 | "metadata": {},
413 | "source": [
414 | "#### use this only if positive and double check"
415 | ]
416 | },
417 | {
418 | "cell_type": "code",
419 | "execution_count": 10,
420 | "metadata": {
421 | "collapsed": false
422 | },
423 | "outputs": [
424 | {
425 | "ename": "SyntaxError",
426 | "evalue": "invalid syntax (, line 1)",
427 | "output_type": "error",
428 | "traceback": [
429 | "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m echo rm -rf fake_dir\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
430 | ]
431 | }
432 | ],
433 | "source": [
434 | "echo rm -rf fake_dir"
435 | ]
436 | },
437 | {
438 | "cell_type": "markdown",
439 | "metadata": {},
440 | "source": [
441 | "# Permissions for a file (chmod)\n"
442 | ]
443 | },
444 | {
445 | "cell_type": "markdown",
446 | "metadata": {},
447 | "source": [
448 | "## There are thre different types of permissions\n",
449 | "### readable (r)\n",
450 | "### executable (x)\n",
451 | "### writeable (w)\n",
452 | "## Permissions can be applied to different people \n",
453 | "### just the user\n",
454 | "### group\n",
455 | "### and \"o\" everyone\n"
456 | ]
457 | },
458 | {
459 | "cell_type": "code",
460 | "execution_count": 11,
461 | "metadata": {
462 | "collapsed": false
463 | },
464 | "outputs": [
465 | {
466 | "name": "stdout",
467 | "output_type": "stream",
468 | "text": [
469 | "-rw-r--r-- 1 christis staff 0B Jun 5 12:25 example_file\n"
470 | ]
471 | }
472 | ],
473 | "source": [
474 | "%%bash \n",
475 | "touch example_file\n",
476 | "ls -lh example_file"
477 | ]
478 | },
479 | {
480 | "cell_type": "markdown",
481 | "metadata": {},
482 | "source": [
483 | "## Can use octals to explain\n",
484 | "### read = 4\n",
485 | "### write = 2\n",
486 | "### execute =1\n",
487 | "### First number is for user, second for group, and third for others"
488 | ]
489 | },
490 | {
491 | "cell_type": "code",
492 | "execution_count": 14,
493 | "metadata": {
494 | "collapsed": false
495 | },
496 | "outputs": [
497 | {
498 | "name": "stdout",
499 | "output_type": "stream",
500 | "text": [
501 | "-rw-r--r-- 1 christis staff 0B Jun 5 12:25 example_file\n"
502 | ]
503 | }
504 | ],
505 | "source": [
506 | "%%bash\n",
507 | "chmod 644 example_file\n",
508 | "ls -lh example_file"
509 | ]
510 | },
511 | {
512 | "cell_type": "code",
513 | "execution_count": 16,
514 | "metadata": {
515 | "collapsed": false
516 | },
517 | "outputs": [
518 | {
519 | "name": "stdout",
520 | "output_type": "stream",
521 | "text": [
522 | "-rw----r-- 1 christis staff 0B Jun 5 12:25 example_file\n"
523 | ]
524 | }
525 | ],
526 | "source": [
527 | "%%bash\n",
528 | "chmod 604 example_file\n",
529 | "ls -lh example_file"
530 | ]
531 | },
532 | {
533 | "cell_type": "code",
534 | "execution_count": 18,
535 | "metadata": {
536 | "collapsed": false
537 | },
538 | "outputs": [
539 | {
540 | "name": "stdout",
541 | "output_type": "stream",
542 | "text": [
543 | "-rwxrwxrwx 1 christis staff 0B Jun 5 12:25 example_file\n"
544 | ]
545 | }
546 | ],
547 | "source": [
548 | "%%bash \n",
549 | "chmod 777 example_file\n",
550 | "ls -lh example_file"
551 | ]
552 | },
553 | {
554 | "cell_type": "code",
555 | "execution_count": 23,
556 | "metadata": {
557 | "collapsed": false
558 | },
559 | "outputs": [
560 | {
561 | "name": "stdout",
562 | "output_type": "stream",
563 | "text": [
564 | "-rw-r--r-- 1 christis staff 0B Jun 5 12:36 paranoid\n"
565 | ]
566 | }
567 | ],
568 | "source": [
569 | "%%bash\n",
570 | "touch paranoid\n",
571 | "umask 0077 paranoid #only the creator can modify and use the file\n",
572 | "ls -lh paranoid"
573 | ]
574 | },
575 | {
576 | "cell_type": "code",
577 | "execution_count": 26,
578 | "metadata": {
579 | "collapsed": false
580 | },
581 | "outputs": [
582 | {
583 | "name": "stdout",
584 | "output_type": "stream",
585 | "text": [
586 | "-rwxr--r-- 1 christis staff 0B Jun 5 12:42 single_perm\n",
587 | "-rwxrwxrwx 1 christis staff 0B Jun 5 12:42 loose\n"
588 | ]
589 | }
590 | ],
591 | "source": [
592 | "%%bash \n",
593 | "touch single_perm\n",
594 | "chmod u+x single_perm\n",
595 | "ls -lh single_perm\n",
596 | "\n",
597 | "touch loose\n",
598 | "chmod a+rwx loose \n",
599 | "ls -lh loose"
600 | ]
601 | },
602 | {
603 | "cell_type": "code",
604 | "execution_count": 28,
605 | "metadata": {
606 | "collapsed": false
607 | },
608 | "outputs": [
609 | {
610 | "name": "stdout",
611 | "output_type": "stream",
612 | "text": [
613 | "---------- 1 christis staff 0B Jun 5 12:42 loose\n"
614 | ]
615 | }
616 | ],
617 | "source": [
618 | "%%bash\n",
619 | "chmod a-rwx loose\n",
620 | "ls -lh loose"
621 | ]
622 | },
623 | {
624 | "cell_type": "code",
625 | "execution_count": 29,
626 | "metadata": {
627 | "collapsed": true
628 | },
629 | "outputs": [],
630 | "source": [
631 | "%%bash\n",
632 | "mkdir tesssst\n",
633 | "chmod -R a+rwx tesssst"
634 | ]
635 | },
636 | {
637 | "cell_type": "code",
638 | "execution_count": null,
639 | "metadata": {
640 | "collapsed": true
641 | },
642 | "outputs": [],
643 | "source": []
644 | }
645 | ],
646 | "metadata": {
647 | "kernelspec": {
648 | "display_name": "Python 3",
649 | "language": "python",
650 | "name": "python3"
651 | },
652 | "language_info": {
653 | "codemirror_mode": {
654 | "name": "ipython",
655 | "version": 3
656 | },
657 | "file_extension": ".py",
658 | "mimetype": "text/x-python",
659 | "name": "python",
660 | "nbconvert_exporter": "python",
661 | "pygments_lexer": "ipython3",
662 | "version": "3.5.3"
663 | }
664 | },
665 | "nbformat": 4,
666 | "nbformat_minor": 2
667 | }
668 |
--------------------------------------------------------------------------------
/modules/view.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# View\n",
8 | "\n",
9 | "* head\n",
10 | "* tail\n",
11 | "* echo\n",
12 | "* history\n",
13 | "* date\n",
14 | "* which\n",
15 | "* type"
16 | ]
17 | },
18 | {
19 | "cell_type": "markdown",
20 | "metadata": {},
21 | "source": [
22 | "## Setup"
23 | ]
24 | },
25 | {
26 | "cell_type": "code",
27 | "execution_count": 1,
28 | "metadata": {},
29 | "outputs": [],
30 | "source": [
31 | "%%bash\n",
32 | "rm -rf dir_a dir_b input_a.txt log my.log\n",
33 | "mkdir -p bin dir_a/sub_a1 dir_a/sub_a2 dir_b/sub_b1\n",
34 | "touch dir_a/sub_a1/f1 dir_a/sub_a1/f2 dir_a/sub_a2/f3 dir_b/sub_b1/f4"
35 | ]
36 | },
37 | {
38 | "cell_type": "code",
39 | "execution_count": 2,
40 | "metadata": {},
41 | "outputs": [
42 | {
43 | "name": "stdout",
44 | "output_type": "stream",
45 | "text": [
46 | "Writing input_a.txt\n"
47 | ]
48 | }
49 | ],
50 | "source": [
51 | "%%writefile input_a.txt\n",
52 | "sample file\n",
53 | "hello world"
54 | ]
55 | },
56 | {
57 | "cell_type": "code",
58 | "execution_count": 3,
59 | "metadata": {},
60 | "outputs": [
61 | {
62 | "name": "stdout",
63 | "output_type": "stream",
64 | "text": [
65 | ".\r\n",
66 | "├── bin\r\n",
67 | "│ └── ts\r\n",
68 | "├── dir_a\r\n",
69 | "│ ├── sub_a1\r\n",
70 | "│ │ ├── f1\r\n",
71 | "│ │ └── f2\r\n",
72 | "│ └── sub_a2\r\n",
73 | "│ └── f3\r\n",
74 | "├── dir_b\r\n",
75 | "│ └── sub_b1\r\n",
76 | "│ └── f4\r\n",
77 | "├── input_a.txt\r\n",
78 | "└── view.ipynb\r\n",
79 | "\r\n",
80 | "6 directories, 7 files\r\n"
81 | ]
82 | }
83 | ],
84 | "source": [
85 | "!tree"
86 | ]
87 | },
88 | {
89 | "cell_type": "code",
90 | "execution_count": 4,
91 | "metadata": {},
92 | "outputs": [
93 | {
94 | "name": "stdout",
95 | "output_type": "stream",
96 | "text": [
97 | "total 24\r\n",
98 | "drwxr-xr-x 3 hale 96 May 30 08:52 bin/\r\n",
99 | "drwxr-xr-x 4 hale 128 May 30 09:24 dir_a/\r\n",
100 | "drwxr-xr-x 3 hale 96 May 30 09:24 dir_b/\r\n",
101 | "-rw-r--r-- 1 hale 23 May 30 09:24 input_a.txt\r\n",
102 | "-rw-r--r-- 1 hale 18782 May 30 09:23 view.ipynb\r\n"
103 | ]
104 | }
105 | ],
106 | "source": [
107 | "ll"
108 | ]
109 | },
110 | {
111 | "cell_type": "markdown",
112 | "metadata": {},
113 | "source": [
114 | "## `which` vs `type`\n",
115 | "\n",
116 | "`which` can report the location of the corresponding executable file.\n",
117 | "\n",
118 | "`type` can report:\n",
119 | "\n",
120 | "* executable files\n",
121 | "* shell builtins\n",
122 | "* aliases\n",
123 | "* shell functions"
124 | ]
125 | },
126 | {
127 | "cell_type": "code",
128 | "execution_count": 5,
129 | "metadata": {},
130 | "outputs": [
131 | {
132 | "name": "stdout",
133 | "output_type": "stream",
134 | "text": [
135 | "/anaconda3/bin/ls\r\n"
136 | ]
137 | }
138 | ],
139 | "source": [
140 | "!which ls"
141 | ]
142 | },
143 | {
144 | "cell_type": "code",
145 | "execution_count": 6,
146 | "metadata": {},
147 | "outputs": [
148 | {
149 | "name": "stdout",
150 | "output_type": "stream",
151 | "text": [
152 | "ls is /anaconda3/bin/ls\r\n"
153 | ]
154 | }
155 | ],
156 | "source": [
157 | "!type ls"
158 | ]
159 | },
160 | {
161 | "cell_type": "code",
162 | "execution_count": 7,
163 | "metadata": {},
164 | "outputs": [
165 | {
166 | "name": "stdout",
167 | "output_type": "stream",
168 | "text": [
169 | "cd is a shell builtin\r\n"
170 | ]
171 | }
172 | ],
173 | "source": [
174 | "!type cd"
175 | ]
176 | },
177 | {
178 | "cell_type": "code",
179 | "execution_count": 8,
180 | "metadata": {},
181 | "outputs": [
182 | {
183 | "name": "stdout",
184 | "output_type": "stream",
185 | "text": [
186 | "pwd is a shell builtin\r\n"
187 | ]
188 | }
189 | ],
190 | "source": [
191 | "!type pwd"
192 | ]
193 | },
194 | {
195 | "cell_type": "code",
196 | "execution_count": 9,
197 | "metadata": {},
198 | "outputs": [
199 | {
200 | "name": "stdout",
201 | "output_type": "stream",
202 | "text": [
203 | "/anaconda3/bin/pwd\r\n"
204 | ]
205 | }
206 | ],
207 | "source": [
208 | "!which pwd\n",
209 | "# Both a shell builtin and an executable"
210 | ]
211 | },
212 | {
213 | "cell_type": "code",
214 | "execution_count": 10,
215 | "metadata": {},
216 | "outputs": [
217 | {
218 | "name": "stdout",
219 | "output_type": "stream",
220 | "text": [
221 | "env is /anaconda3/bin/env\r\n"
222 | ]
223 | }
224 | ],
225 | "source": [
226 | "!type env"
227 | ]
228 | },
229 | {
230 | "cell_type": "code",
231 | "execution_count": 11,
232 | "metadata": {},
233 | "outputs": [
234 | {
235 | "name": "stdout",
236 | "output_type": "stream",
237 | "text": [
238 | "set is a shell builtin\r\n"
239 | ]
240 | }
241 | ],
242 | "source": [
243 | "!type set"
244 | ]
245 | },
246 | {
247 | "cell_type": "markdown",
248 | "metadata": {},
249 | "source": [
250 | "## `date`"
251 | ]
252 | },
253 | {
254 | "cell_type": "code",
255 | "execution_count": 12,
256 | "metadata": {},
257 | "outputs": [
258 | {
259 | "name": "stdout",
260 | "output_type": "stream",
261 | "text": [
262 | "Wed May 30 09:24:50 CDT 2018\r\n"
263 | ]
264 | }
265 | ],
266 | "source": [
267 | "!date"
268 | ]
269 | },
270 | {
271 | "cell_type": "code",
272 | "execution_count": 13,
273 | "metadata": {},
274 | "outputs": [
275 | {
276 | "name": "stdout",
277 | "output_type": "stream",
278 | "text": [
279 | "2018\r\n"
280 | ]
281 | }
282 | ],
283 | "source": [
284 | "!date +%Y"
285 | ]
286 | },
287 | {
288 | "cell_type": "code",
289 | "execution_count": 14,
290 | "metadata": {},
291 | "outputs": [
292 | {
293 | "name": "stdout",
294 | "output_type": "stream",
295 | "text": [
296 | "hello world\r\n"
297 | ]
298 | }
299 | ],
300 | "source": [
301 | "!date +'hello world'"
302 | ]
303 | },
304 | {
305 | "cell_type": "code",
306 | "execution_count": 15,
307 | "metadata": {},
308 | "outputs": [
309 | {
310 | "name": "stdout",
311 | "output_type": "stream",
312 | "text": [
313 | "2018-05-30T09:24:51 arbitrary logging of some step in your script\r\n"
314 | ]
315 | }
316 | ],
317 | "source": [
318 | "!date +\"%Y-%m-%dT%H:%M:%S arbitrary logging of some step in your script\""
319 | ]
320 | },
321 | {
322 | "cell_type": "code",
323 | "execution_count": 16,
324 | "metadata": {},
325 | "outputs": [
326 | {
327 | "name": "stdout",
328 | "output_type": "stream",
329 | "text": [
330 | "2018-05-30T09:24:51 arbitrary logging of some step in your script\r\n"
331 | ]
332 | }
333 | ],
334 | "source": [
335 | "!date +\"%FT%T arbitrary logging of some step in your script\""
336 | ]
337 | },
338 | {
339 | "cell_type": "code",
340 | "execution_count": 17,
341 | "metadata": {},
342 | "outputs": [
343 | {
344 | "name": "stdout",
345 | "output_type": "stream",
346 | "text": [
347 | "Overwriting bin/ts\n"
348 | ]
349 | }
350 | ],
351 | "source": [
352 | "%%writefile bin/ts\n",
353 | "#!/usr/bin/env bash\n",
354 | "\n",
355 | "date +\"%FT%T $*\""
356 | ]
357 | },
358 | {
359 | "cell_type": "code",
360 | "execution_count": 18,
361 | "metadata": {},
362 | "outputs": [],
363 | "source": [
364 | "!chmod +x bin/ts"
365 | ]
366 | },
367 | {
368 | "cell_type": "code",
369 | "execution_count": 19,
370 | "metadata": {
371 | "scrolled": true
372 | },
373 | "outputs": [
374 | {
375 | "name": "stdout",
376 | "output_type": "stream",
377 | "text": [
378 | "2018-05-30T09:24:51 \r\n"
379 | ]
380 | }
381 | ],
382 | "source": [
383 | "!bin/ts"
384 | ]
385 | },
386 | {
387 | "cell_type": "code",
388 | "execution_count": 20,
389 | "metadata": {},
390 | "outputs": [
391 | {
392 | "name": "stdout",
393 | "output_type": "stream",
394 | "text": [
395 | "00000000: 3230 3138 2d30 352d 3330 5430 393a 3234 2018-05-30T09:24\r\n",
396 | "00000010: 3a35 3120 0a :51 .\r\n"
397 | ]
398 | }
399 | ],
400 | "source": [
401 | "!ts | xxd"
402 | ]
403 | },
404 | {
405 | "cell_type": "code",
406 | "execution_count": 21,
407 | "metadata": {
408 | "scrolled": true
409 | },
410 | "outputs": [
411 | {
412 | "name": "stdout",
413 | "output_type": "stream",
414 | "text": [
415 | "2018-05-30T09:24:51 foo bar\r\n"
416 | ]
417 | }
418 | ],
419 | "source": [
420 | "!bin/ts foo bar"
421 | ]
422 | },
423 | {
424 | "cell_type": "code",
425 | "execution_count": 22,
426 | "metadata": {
427 | "scrolled": true
428 | },
429 | "outputs": [
430 | {
431 | "name": "stdout",
432 | "output_type": "stream",
433 | "text": [
434 | "2018-05-30T09:24:51 arbitrary logging of some step in your script\r\n"
435 | ]
436 | }
437 | ],
438 | "source": [
439 | "!bin/ts \"arbitrary logging of some step in your script\""
440 | ]
441 | },
442 | {
443 | "cell_type": "code",
444 | "execution_count": 23,
445 | "metadata": {},
446 | "outputs": [
447 | {
448 | "name": "stdout",
449 | "output_type": "stream",
450 | "text": [
451 | "2018-05-30T09:24:52 starting my_script\n",
452 | "2018-05-30T09:24:52 config: foo=42\n",
453 | "2018-05-30T09:24:52 processing file=/tmp/hale/file1\n",
454 | "2018-05-30T09:24:52 processing file=/tmp/hale/file2\n",
455 | "2018-05-30T09:24:52 finished\n"
456 | ]
457 | }
458 | ],
459 | "source": [
460 | "%%bash\n",
461 | "ts starting my_script\n",
462 | "ts config: foo=42\n",
463 | "ts processing file='/tmp/hale/file1'\n",
464 | "ts processing file='/tmp/hale/file2'\n",
465 | "ts finished"
466 | ]
467 | },
468 | {
469 | "cell_type": "code",
470 | "execution_count": 24,
471 | "metadata": {},
472 | "outputs": [
473 | {
474 | "name": "stdout",
475 | "output_type": "stream",
476 | "text": [
477 | "2018-05-30T09:24:52 starting my_script\n",
478 | "2018-05-30T09:24:52 finished\n"
479 | ]
480 | },
481 | {
482 | "name": "stderr",
483 | "output_type": "stream",
484 | "text": [
485 | "2018-05-30T09:24:52 config: foo=42\n",
486 | "2018-05-30T09:24:52 processing file=/tmp/hale/file1\n",
487 | "2018-05-30T09:24:52 processing file=/tmp/hale/file2\n"
488 | ]
489 | }
490 | ],
491 | "source": [
492 | "%%bash\n",
493 | "ts starting my_script | tee -a log\n",
494 | "ts config: foo=42 | tee -a log >&2\n",
495 | "ts processing file='/tmp/hale/file1' | tee -a log >&2\n",
496 | "ts processing file='/tmp/hale/file2' | tee -a log >&2\n",
497 | "ts finished | tee -a log"
498 | ]
499 | },
500 | {
501 | "cell_type": "code",
502 | "execution_count": 25,
503 | "metadata": {},
504 | "outputs": [
505 | {
506 | "name": "stdout",
507 | "output_type": "stream",
508 | "text": [
509 | "2018-05-30T09:24:52 starting my_script\r\n",
510 | "2018-05-30T09:24:52 config: foo=42\r\n",
511 | "2018-05-30T09:24:52 processing file=/tmp/hale/file1\r\n",
512 | "2018-05-30T09:24:52 processing file=/tmp/hale/file2\r\n",
513 | "2018-05-30T09:24:52 finished\r\n"
514 | ]
515 | }
516 | ],
517 | "source": [
518 | "!cat log"
519 | ]
520 | },
521 | {
522 | "cell_type": "code",
523 | "execution_count": 26,
524 | "metadata": {},
525 | "outputs": [
526 | {
527 | "name": "stderr",
528 | "output_type": "stream",
529 | "text": [
530 | "2018-05-30T09:24:52 starting my_script\n",
531 | "2018-05-30T09:24:52 config: foo=42\n",
532 | "2018-05-30T09:24:52 processing file=/tmp/hale/file1\n",
533 | "2018-05-30T09:24:52 processing file=/tmp/hale/file2\n",
534 | "2018-05-30T09:24:52 finished\n"
535 | ]
536 | }
537 | ],
538 | "source": [
539 | "%%bash\n",
540 | "log() { ts $* | tee -a my.log >&2; }\n",
541 | "log starting my_script\n",
542 | "log config: foo=42\n",
543 | "log processing file='/tmp/hale/file1'\n",
544 | "log processing file='/tmp/hale/file2'\n",
545 | "log finished"
546 | ]
547 | },
548 | {
549 | "cell_type": "code",
550 | "execution_count": 27,
551 | "metadata": {},
552 | "outputs": [
553 | {
554 | "name": "stdout",
555 | "output_type": "stream",
556 | "text": [
557 | "cat: walker.log: No such file or directory\r\n"
558 | ]
559 | }
560 | ],
561 | "source": [
562 | "!cat walker.log"
563 | ]
564 | },
565 | {
566 | "cell_type": "code",
567 | "execution_count": 28,
568 | "metadata": {},
569 | "outputs": [
570 | {
571 | "name": "stderr",
572 | "output_type": "stream",
573 | "text": [
574 | "2018-05-30T09:24:52 starting my_script\n",
575 | "2018-05-30T09:24:52 config: foo=42\n",
576 | "2018-05-30T09:24:52 processing file=/tmp/hale/file1\n",
577 | "2018-05-30T09:24:52 processing file=/tmp/hale/file2\n",
578 | "2018-05-30T09:24:52 finished\n"
579 | ]
580 | }
581 | ],
582 | "source": [
583 | "%%bash\n",
584 | "log() { date +\"%FT%T $*\" | tee -a my.log >&2; }\n",
585 | "log starting my_script\n",
586 | "log config: foo=42\n",
587 | "log processing file='/tmp/hale/file1'\n",
588 | "log processing file='/tmp/hale/file2'\n",
589 | "log finished"
590 | ]
591 | },
592 | {
593 | "cell_type": "code",
594 | "execution_count": 29,
595 | "metadata": {},
596 | "outputs": [
597 | {
598 | "name": "stdout",
599 | "output_type": "stream",
600 | "text": [
601 | "20180530092452.dat\n"
602 | ]
603 | }
604 | ],
605 | "source": [
606 | "%%bash\n",
607 | "fn=$(date +%Y%m%d%H%M%S.dat)\n",
608 | "echo $fn"
609 | ]
610 | },
611 | {
612 | "cell_type": "markdown",
613 | "metadata": {},
614 | "source": [
615 | "## `head` and `tail`\n",
616 | "\n",
617 | "These can be combined to select regions of a file. Piping the output of `head` into `tail` selects a region that is anchored to the start of a file. Piping the output of `tail` into `head` selects a region that is anchored to the end of a file."
618 | ]
619 | },
620 | {
621 | "cell_type": "code",
622 | "execution_count": 30,
623 | "metadata": {
624 | "scrolled": false
625 | },
626 | "outputs": [
627 | {
628 | "name": "stdout",
629 | "output_type": "stream",
630 | "text": [
631 | " 1\t2018-05-30T09:24:52 starting my_script\r\n",
632 | " 2\t2018-05-30T09:24:52 config: foo=42\r\n",
633 | " 3\t2018-05-30T09:24:52 processing file=/tmp/hale/file1\r\n",
634 | " 4\t2018-05-30T09:24:52 processing file=/tmp/hale/file2\r\n",
635 | " 5\t2018-05-30T09:24:52 finished\r\n",
636 | " 6\t2018-05-30T09:24:52 starting my_script\r\n",
637 | " 7\t2018-05-30T09:24:52 config: foo=42\r\n",
638 | " 8\t2018-05-30T09:24:52 processing file=/tmp/hale/file1\r\n",
639 | " 9\t2018-05-30T09:24:52 processing file=/tmp/hale/file2\r\n",
640 | " 10\t2018-05-30T09:24:52 finished\r\n"
641 | ]
642 | }
643 | ],
644 | "source": [
645 | "!cat -n my.log"
646 | ]
647 | },
648 | {
649 | "cell_type": "code",
650 | "execution_count": 31,
651 | "metadata": {},
652 | "outputs": [
653 | {
654 | "name": "stdout",
655 | "output_type": "stream",
656 | "text": [
657 | "2018-05-30T09:24:52 starting my_script\r\n"
658 | ]
659 | }
660 | ],
661 | "source": [
662 | "!head -n1 my.log"
663 | ]
664 | },
665 | {
666 | "cell_type": "code",
667 | "execution_count": 32,
668 | "metadata": {},
669 | "outputs": [
670 | {
671 | "name": "stdout",
672 | "output_type": "stream",
673 | "text": [
674 | "2018-05-30T09:24:52 finished\r\n"
675 | ]
676 | }
677 | ],
678 | "source": [
679 | "!tail -n1 my.log"
680 | ]
681 | },
682 | {
683 | "cell_type": "code",
684 | "execution_count": 33,
685 | "metadata": {},
686 | "outputs": [
687 | {
688 | "name": "stdout",
689 | "output_type": "stream",
690 | "text": [
691 | "2018-05-30T09:24:52 finished\r\n",
692 | "2018-05-30T09:24:52 starting my_script\r\n",
693 | "2018-05-30T09:24:52 config: foo=42\r\n",
694 | "2018-05-30T09:24:52 processing file=/tmp/hale/file1\r\n",
695 | "2018-05-30T09:24:52 processing file=/tmp/hale/file2\r\n",
696 | "2018-05-30T09:24:52 finished\r\n"
697 | ]
698 | }
699 | ],
700 | "source": [
701 | "!tail -n +5 my.log"
702 | ]
703 | },
704 | {
705 | "cell_type": "code",
706 | "execution_count": 34,
707 | "metadata": {},
708 | "outputs": [
709 | {
710 | "name": "stdout",
711 | "output_type": "stream",
712 | "text": [
713 | "2018-05-30T09:24:52 processing file=/tmp/hale/file1\r\n"
714 | ]
715 | }
716 | ],
717 | "source": [
718 | "!head -n 3 my.log | tail -n 1"
719 | ]
720 | },
721 | {
722 | "cell_type": "code",
723 | "execution_count": 35,
724 | "metadata": {},
725 | "outputs": [
726 | {
727 | "name": "stdout",
728 | "output_type": "stream",
729 | "text": [
730 | "2018-05-30T09:24:52 processing file=/tmp/hale/file1\r\n",
731 | "2018-05-30T09:24:52 processing file=/tmp/hale/file2\r\n"
732 | ]
733 | }
734 | ],
735 | "source": [
736 | "!head -n4 my.log | tail -n2"
737 | ]
738 | },
739 | {
740 | "cell_type": "code",
741 | "execution_count": 36,
742 | "metadata": {},
743 | "outputs": [
744 | {
745 | "name": "stdout",
746 | "output_type": "stream",
747 | "text": [
748 | "3\r\n",
749 | "4\r\n"
750 | ]
751 | }
752 | ],
753 | "source": [
754 | "!seq 500 | head -n4 | tail -n2"
755 | ]
756 | },
757 | {
758 | "cell_type": "code",
759 | "execution_count": 37,
760 | "metadata": {},
761 | "outputs": [
762 | {
763 | "name": "stdout",
764 | "output_type": "stream",
765 | "text": [
766 | "1\r\n",
767 | "2\r\n",
768 | "3\r\n",
769 | "4\r\n"
770 | ]
771 | }
772 | ],
773 | "source": [
774 | "!seq 500 | head -n4"
775 | ]
776 | },
777 | {
778 | "cell_type": "code",
779 | "execution_count": 38,
780 | "metadata": {},
781 | "outputs": [
782 | {
783 | "name": "stdout",
784 | "output_type": "stream",
785 | "text": [
786 | "497\r\n",
787 | "498\r\n",
788 | "499\r\n",
789 | "500\r\n"
790 | ]
791 | }
792 | ],
793 | "source": [
794 | "!seq 500 | tail -n4"
795 | ]
796 | },
797 | {
798 | "cell_type": "code",
799 | "execution_count": 39,
800 | "metadata": {},
801 | "outputs": [
802 | {
803 | "name": "stdout",
804 | "output_type": "stream",
805 | "text": [
806 | "499\r\n"
807 | ]
808 | }
809 | ],
810 | "source": [
811 | "!seq 500 | tail -n2 | head -n1"
812 | ]
813 | },
814 | {
815 | "cell_type": "code",
816 | "execution_count": 40,
817 | "metadata": {},
818 | "outputs": [
819 | {
820 | "name": "stdout",
821 | "output_type": "stream",
822 | "text": [
823 | "494\r\n",
824 | "495\r\n",
825 | "496\r\n"
826 | ]
827 | }
828 | ],
829 | "source": [
830 | "!seq 500 | tail -n7 | head -n3"
831 | ]
832 | },
833 | {
834 | "cell_type": "markdown",
835 | "metadata": {},
836 | "source": [
837 | "## `echo`"
838 | ]
839 | },
840 | {
841 | "cell_type": "code",
842 | "execution_count": 41,
843 | "metadata": {},
844 | "outputs": [
845 | {
846 | "name": "stdout",
847 | "output_type": "stream",
848 | "text": [
849 | "hello\n",
850 | "world\n",
851 | "\n",
852 | "foobar\n"
853 | ]
854 | }
855 | ],
856 | "source": [
857 | "%%bash\n",
858 | "echo -e hello\\\\nworld\n",
859 | "echo\n",
860 | "echo -n foo\n",
861 | "echo bar"
862 | ]
863 | }
864 | ],
865 | "metadata": {
866 | "kernelspec": {
867 | "display_name": "Python 3",
868 | "language": "python",
869 | "name": "python3"
870 | },
871 | "language_info": {
872 | "codemirror_mode": {
873 | "name": "ipython",
874 | "version": 3
875 | },
876 | "file_extension": ".py",
877 | "mimetype": "text/x-python",
878 | "name": "python",
879 | "nbconvert_exporter": "python",
880 | "pygments_lexer": "ipython3",
881 | "version": "3.6.4"
882 | }
883 | },
884 | "nbformat": 4,
885 | "nbformat_minor": 2
886 | }
887 |
--------------------------------------------------------------------------------
/modules/compare/compare_module.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "## What is sort?\n",
8 | "> command to sort the contents of a file, line by line
\n",
9 | "> rearranges the lines, numerically and alphabetically\n",
10 | "\n",
11 | "### Default Rules:\n",
12 | "- number before alphabet
\n",
13 | "- UPPERCASE before lowercase"
14 | ]
15 | },
16 | {
17 | "cell_type": "code",
18 | "execution_count": 1,
19 | "metadata": {},
20 | "outputs": [
21 | {
22 | "name": "stdout",
23 | "output_type": "stream",
24 | "text": [
25 | "SORT(1) User Commands SORT(1)\r\n",
26 | "\r\n",
27 | "\r\n",
28 | "\r\n",
29 | "N\bNA\bAM\bME\bE\r\n",
30 | " sort - sort lines of text files\r\n",
31 | "\r\n",
32 | "S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS\r\n",
33 | " s\bso\bor\brt\bt [_\bO_\bP_\bT_\bI_\bO_\bN]... [_\bF_\bI_\bL_\bE]...\r\n",
34 | "\r\n",
35 | "D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN\r\n",
36 | " Write sorted concatenation of all FILE(s) to standard output.\r\n",
37 | "\r\n",
38 | " Mandatory arguments to long options are mandatory for short options\r\n",
39 | " too. Ordering options:\r\n",
40 | "\r\n",
41 | " -\b-b\bb, -\b--\b-i\big\bgn\bno\bor\bre\be-\b-l\ble\bea\bad\bdi\bin\bng\bg-\b-b\bbl\bla\ban\bnk\bks\bs\r\n",
42 | " ignore leading blanks\r\n",
43 | "\r\n",
44 | " -\b-d\bd, -\b--\b-d\bdi\bic\bct\bti\bio\bon\bna\bar\bry\by-\b-o\bor\brd\bde\ber\br\r\n",
45 | " consider only blanks and alphanumeric characters\r\n",
46 | "\r\n",
47 | " -\b-f\bf, -\b--\b-i\big\bgn\bno\bor\bre\be-\b-c\bca\bas\bse\be\r\n",
48 | " fold lower case to upper case characters\r\n",
49 | "\r\n",
50 | " -\b-g\bg, -\b--\b-g\bge\ben\bne\ber\bra\bal\bl-\b-n\bnu\bum\bme\ber\bri\bic\bc-\b-s\bso\bor\brt\bt\r\n",
51 | " compare according to general numerical value\r\n",
52 | "\r\n",
53 | " -\b-i\bi, -\b--\b-i\big\bgn\bno\bor\bre\be-\b-n\bno\bon\bnp\bpr\bri\bin\bnt\bti\bin\bng\bg\r\n",
54 | " consider only printable characters\r\n",
55 | "\r\n",
56 | " -\b-M\bM, -\b--\b-m\bmo\bon\bnt\bth\bh-\b-s\bso\bor\brt\bt\r\n",
57 | " compare (unknown) < `JAN' < ... < `DEC'\r\n",
58 | "\r\n",
59 | " -\b-n\bn, -\b--\b-n\bnu\bum\bme\ber\bri\bic\bc-\b-s\bso\bor\brt\bt\r\n",
60 | " compare according to string numerical value\r\n",
61 | "\r\n",
62 | " -\b-r\br, -\b--\b-r\bre\bev\bve\ber\brs\bse\be\r\n",
63 | " reverse the result of comparisons\r\n",
64 | "\r\n",
65 | " Other options:\r\n",
66 | "\r\n",
67 | " -\b-c\bc, -\b--\b-c\bch\bhe\bec\bck\bk\r\n",
68 | " check whether input is sorted; do not sort\r\n",
69 | "\r\n",
70 | " -\b-k\bk, -\b--\b-k\bke\bey\by=_\bP_\bO_\bS_\b1_\b[,POS2]\r\n",
71 | " start a key at POS1, end it at POS2 (origin 1)\r\n",
72 | "\r\n",
73 | " -\b-m\bm, -\b--\b-m\bme\ber\brg\bge\be\r\n",
74 | " merge already sorted files; do not sort\r\n",
75 | "\r\n",
76 | " -\b-o\bo, -\b--\b-o\bou\but\btp\bpu\but\bt=_\bF_\bI_\bL_\bE\r\n",
77 | " write result to FILE instead of standard output\r\n",
78 | "\r\n",
79 | " -\b-s\bs, -\b--\b-s\bst\bta\bab\bbl\ble\be\r\n",
80 | " stabilize sort by disabling last-resort comparison\r\n",
81 | "\r\n",
82 | " -\b-S\bS, -\b--\b-b\bbu\buf\bff\bfe\ber\br-\b-s\bsi\biz\bze\be=_\bS_\bI_\bZ_\bE\r\n",
83 | " use SIZE for main memory buffer\r\n",
84 | "\r\n",
85 | " -\b-t\bt, -\b--\b-f\bfi\bie\bel\bld\bd-\b-s\bse\bep\bpa\bar\bra\bat\bto\bor\br=_\bS_\bE_\bP\r\n",
86 | " use SEP instead of non-blank to blank transition\r\n",
87 | "\r\n",
88 | " -\b-T\bT, -\b--\b-t\bte\bem\bmp\bpo\bor\bra\bar\bry\by-\b-d\bdi\bir\bre\bec\bct\bto\bor\bry\by=_\bD_\bI_\bR\r\n",
89 | " use DIR for temporaries, not $TMPDIR or /tmp; multiple options\r\n",
90 | " specify multiple directories\r\n",
91 | "\r\n",
92 | " -\b-u\bu, -\b--\b-u\bun\bni\biq\bqu\bue\be\r\n",
93 | " with -\b-c\bc, check for strict ordering; without -\b-c\bc, output only the\r\n",
94 | " first of an equal run\r\n",
95 | "\r\n",
96 | " -\b-z\bz, -\b--\b-z\bze\ber\bro\bo-\b-t\bte\ber\brm\bmi\bin\bna\bat\bte\bed\bd\r\n",
97 | " end lines with 0 byte, not newline\r\n",
98 | "\r\n",
99 | " -\b--\b-h\bhe\bel\blp\bp display this help and exit\r\n",
100 | "\r\n",
101 | " -\b--\b-v\bve\ber\brs\bsi\bio\bon\bn\r\n",
102 | " output version information and exit\r\n",
103 | "\r\n",
104 | " POS is F[.C][OPTS], where F is the field number and C the character\r\n",
105 | " position in the field. OPTS is one or more single-letter ordering\r\n",
106 | " options, which override global ordering options for that key. If no\r\n",
107 | " key is given, use the entire line as the key.\r\n",
108 | "\r\n",
109 | " SIZE may be followed by the following multiplicative suffixes: % 1% of\r\n",
110 | " memory, b 1, K 1024 (default), and so on for M, G, T, P, E, Z, Y.\r\n",
111 | "\r\n",
112 | " With no FILE, or when FILE is -, read standard input.\r\n",
113 | "\r\n",
114 | " *** WARNING *** The locale specified by the environment affects sort\r\n",
115 | " order. Set LC_ALL=C to get the traditional sort order that uses native\r\n",
116 | " byte values.\r\n",
117 | "\r\n",
118 | "A\bAU\bUT\bTH\bHO\bOR\bR\r\n",
119 | " Written by Mike Haertel and Paul Eggert.\r\n",
120 | "\r\n",
121 | "R\bRE\bEP\bPO\bOR\bRT\bTI\bIN\bNG\bG B\bBU\bUG\bGS\bS\r\n",
122 | " Report bugs to .\r\n",
123 | "\r\n",
124 | "C\bCO\bOP\bPY\bYR\bRI\bIG\bGH\bHT\bT\r\n",
125 | " Copyright (C) 2005 Free Software Foundation, Inc.\r\n",
126 | " This is free software. You may redistribute copies of it under the\r\n",
127 | " terms of the GNU General Public License\r\n",
128 | " . There is NO WARRANTY, to the\r\n",
129 | " extent permitted by law.\r\n",
130 | "\r\n",
131 | "S\bSE\bEE\bE A\bAL\bLS\bSO\bO\r\n",
132 | " The full documentation for s\bso\bor\brt\bt is maintained as a Texinfo manual. If\r\n",
133 | " the i\bin\bnf\bfo\bo and s\bso\bor\brt\bt programs are properly installed at your site, the\r\n",
134 | " command\r\n",
135 | "\r\n",
136 | " i\bin\bnf\bfo\bo s\bso\bor\brt\bt\r\n",
137 | "\r\n",
138 | " should give you access to the complete manual.\r\n",
139 | "\r\n",
140 | "\r\n",
141 | "\r\n",
142 | "sort 5.93 November 2005 SORT(1)\r\n"
143 | ]
144 | }
145 | ],
146 | "source": [
147 | "!man sort"
148 | ]
149 | },
150 | {
151 | "cell_type": "code",
152 | "execution_count": 2,
153 | "metadata": {},
154 | "outputs": [
155 | {
156 | "name": "stdout",
157 | "output_type": "stream",
158 | "text": [
159 | "this is a cat.\r\n",
160 | "This is a cat.\r\n",
161 | "2 puppies jumped."
162 | ]
163 | }
164 | ],
165 | "source": [
166 | "!cat pets"
167 | ]
168 | },
169 | {
170 | "cell_type": "code",
171 | "execution_count": 3,
172 | "metadata": {},
173 | "outputs": [
174 | {
175 | "name": "stdout",
176 | "output_type": "stream",
177 | "text": [
178 | "2 puppies jumped.\r\n",
179 | "This is a cat.\r\n",
180 | "this is a cat.\r\n"
181 | ]
182 | }
183 | ],
184 | "source": [
185 | "!sort pets"
186 | ]
187 | },
188 | {
189 | "cell_type": "markdown",
190 | "metadata": {},
191 | "source": [
192 | "## What is comm?\n",
193 | "> Unix/Linux command to select or reject **lines** common to two files"
194 | ]
195 | },
196 | {
197 | "cell_type": "markdown",
198 | "metadata": {},
199 | "source": [
200 | "## Method\n",
201 | "- Reads **file1** and **file2**
\n",
202 | "- Generates an output\n",
203 | "\n",
204 | "> ### Output \n",
205 | "- 3 text columns\n",
206 | " - 1: Lines *only* in **file1**
\n",
207 | " - 2: Lines *only* in **file2**
\n",
208 | " - 3: Lines in *both files*
\n",
209 | "- Can be supressed with options\n",
210 | "\n",
211 | "> ### Options\n",
212 | "- -1 Suppress printing of column 1\n",
213 | "- -2 Suppress printing of column 2\n",
214 | "- -3 Suppress printing of column 3\n",
215 | "- -i Case *insensitive* comparison of lines "
216 | ]
217 | },
218 | {
219 | "cell_type": "code",
220 | "execution_count": 4,
221 | "metadata": {},
222 | "outputs": [
223 | {
224 | "name": "stdout",
225 | "output_type": "stream",
226 | "text": [
227 | "\r\n",
228 | "COMM(1) BSD General Commands Manual COMM(1)\r\n",
229 | "\r\n",
230 | "N\bNA\bAM\bME\bE\r\n",
231 | " c\bco\bom\bmm\bm -- select or reject lines common to two files\r\n",
232 | "\r\n",
233 | "S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS\r\n",
234 | " c\bco\bom\bmm\bm [-\b-1\b12\b23\b3i\bi] _\bf_\bi_\bl_\be_\b1 _\bf_\bi_\bl_\be_\b2\r\n",
235 | "\r\n",
236 | "D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN\r\n",
237 | " The c\bco\bom\bmm\bm utility reads _\bf_\bi_\bl_\be_\b1 and _\bf_\bi_\bl_\be_\b2, which should be sorted lexically,\r\n",
238 | " and produces three text columns as output: lines only in _\bf_\bi_\bl_\be_\b1; lines\r\n",
239 | " only in _\bf_\bi_\bl_\be_\b2; and lines in both files.\r\n",
240 | "\r\n",
241 | " The filename ``-'' means the standard input.\r\n",
242 | "\r\n",
243 | " The following options are available:\r\n",
244 | "\r\n",
245 | " -\b-1\b1 Suppress printing of column 1.\r\n",
246 | "\r\n",
247 | " -\b-2\b2 Suppress printing of column 2.\r\n",
248 | "\r\n",
249 | " -\b-3\b3 Suppress printing of column 3.\r\n",
250 | "\r\n",
251 | " -\b-i\bi Case insensitive comparison of lines.\r\n",
252 | "\r\n",
253 | " Each column will have a number of tab characters prepended to it equal to\r\n",
254 | " the number of lower numbered columns that are being printed. For exam-\r\n",
255 | " ple, if column number two is being suppressed, lines printed in column\r\n",
256 | " number one will not have any tabs preceding them, and lines printed in\r\n",
257 | " column number three will have one.\r\n",
258 | "\r\n",
259 | " The c\bco\bom\bmm\bm utility assumes that the files are lexically sorted; all charac-\r\n",
260 | " ters participate in line comparisons.\r\n",
261 | "\r\n",
262 | "E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT\r\n",
263 | " The LANG, LC_ALL, LC_COLLATE, and LC_CTYPE environment variables affect\r\n",
264 | " the execution of c\bco\bom\bmm\bm as described in environ(7).\r\n",
265 | "\r\n",
266 | "E\bEX\bXI\bIT\bT S\bST\bTA\bAT\bTU\bUS\bS\r\n",
267 | " The c\bco\bom\bmm\bm utility exits 0 on success, and >0 if an error occurs.\r\n",
268 | "\r\n",
269 | "S\bSE\bEE\bE A\bAL\bLS\bSO\bO\r\n",
270 | " cmp(1), diff(1), sort(1), uniq(1)\r\n",
271 | "\r\n",
272 | "S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS\r\n",
273 | " The c\bco\bom\bmm\bm utility conforms to IEEE Std 1003.2-1992 (``POSIX.2'').\r\n",
274 | "\r\n",
275 | " The -\b-i\bi option is an extension to the POSIX standard.\r\n",
276 | "\r\n",
277 | "H\bHI\bIS\bST\bTO\bOR\bRY\bY\r\n",
278 | " A c\bco\bom\bmm\bm command appeared in Version 4 AT&T UNIX.\r\n",
279 | "\r\n",
280 | "B\bBU\bUG\bGS\bS\r\n",
281 | " Input lines are limited to LINE_MAX (2048) characters in length.\r\n",
282 | "\r\n",
283 | "BSD January 26, 2005 BSD\r\n"
284 | ]
285 | }
286 | ],
287 | "source": [
288 | "!man comm"
289 | ]
290 | },
291 | {
292 | "cell_type": "code",
293 | "execution_count": 5,
294 | "metadata": {},
295 | "outputs": [
296 | {
297 | "name": "stdout",
298 | "output_type": "stream",
299 | "text": [
300 | "A\r\n",
301 | "B\r\n",
302 | "C\r\n",
303 | "D\r\n",
304 | "E\r\n",
305 | "F\r\n",
306 | "G\r\n"
307 | ]
308 | }
309 | ],
310 | "source": [
311 | "!cat one_list"
312 | ]
313 | },
314 | {
315 | "cell_type": "code",
316 | "execution_count": 6,
317 | "metadata": {},
318 | "outputs": [
319 | {
320 | "name": "stdout",
321 | "output_type": "stream",
322 | "text": [
323 | "A\r\n",
324 | "A\r\n",
325 | "B\r\n",
326 | "D\r\n",
327 | "C\r\n",
328 | "E\r\n",
329 | "F\r\n"
330 | ]
331 | }
332 | ],
333 | "source": [
334 | "!cat two_list # A is repeated twice, C is not in order, no G"
335 | ]
336 | },
337 | {
338 | "cell_type": "code",
339 | "execution_count": 7,
340 | "metadata": {},
341 | "outputs": [
342 | {
343 | "name": "stdout",
344 | "output_type": "stream",
345 | "text": [
346 | "\t\tA\r\n",
347 | "\tA\r\n",
348 | "\t\tB\r\n",
349 | "C\r\n",
350 | "\t\tD\r\n",
351 | "\tC\r\n",
352 | "\t\tE\r\n",
353 | "\t\tF\r\n",
354 | "G\r\n"
355 | ]
356 | }
357 | ],
358 | "source": [
359 | "!comm one_list two_list"
360 | ]
361 | },
362 | {
363 | "cell_type": "code",
364 | "execution_count": 8,
365 | "metadata": {},
366 | "outputs": [
367 | {
368 | "name": "stdout",
369 | "output_type": "stream",
370 | "text": [
371 | "\tA\r\n",
372 | "A\r\n",
373 | "\tB\r\n",
374 | "\tD\r\n",
375 | "C\r\n",
376 | "\tE\r\n",
377 | "\tF\r\n"
378 | ]
379 | }
380 | ],
381 | "source": [
382 | "!comm -1 one_list two_list"
383 | ]
384 | },
385 | {
386 | "cell_type": "code",
387 | "execution_count": 9,
388 | "metadata": {},
389 | "outputs": [
390 | {
391 | "name": "stdout",
392 | "output_type": "stream",
393 | "text": [
394 | "\tA\r\n",
395 | "\tB\r\n",
396 | "C\r\n",
397 | "\tD\r\n",
398 | "\tE\r\n",
399 | "\tF\r\n",
400 | "G\r\n"
401 | ]
402 | }
403 | ],
404 | "source": [
405 | "!comm -2 one_list two_list"
406 | ]
407 | },
408 | {
409 | "cell_type": "code",
410 | "execution_count": 10,
411 | "metadata": {},
412 | "outputs": [
413 | {
414 | "name": "stdout",
415 | "output_type": "stream",
416 | "text": [
417 | "\tA\r\n",
418 | "C\r\n",
419 | "\tC\r\n",
420 | "G\r\n"
421 | ]
422 | }
423 | ],
424 | "source": [
425 | "!comm -3 one_list two_list"
426 | ]
427 | },
428 | {
429 | "cell_type": "code",
430 | "execution_count": 11,
431 | "metadata": {},
432 | "outputs": [
433 | {
434 | "name": "stdout",
435 | "output_type": "stream",
436 | "text": [
437 | "A\r\n",
438 | "B\r\n",
439 | "D\r\n",
440 | "E\r\n",
441 | "F\r\n"
442 | ]
443 | }
444 | ],
445 | "source": [
446 | "!comm -12 one_list two_list ### where is the 'C'?"
447 | ]
448 | },
449 | {
450 | "cell_type": "code",
451 | "execution_count": 12,
452 | "metadata": {},
453 | "outputs": [],
454 | "source": [
455 | "!sort one_list > one_list_sorted\n",
456 | "!sort two_list > two_list_sorted"
457 | ]
458 | },
459 | {
460 | "cell_type": "code",
461 | "execution_count": 13,
462 | "metadata": {},
463 | "outputs": [
464 | {
465 | "name": "stdout",
466 | "output_type": "stream",
467 | "text": [
468 | "A\r\n",
469 | "B\r\n",
470 | "C\r\n",
471 | "D\r\n",
472 | "E\r\n",
473 | "F\r\n"
474 | ]
475 | }
476 | ],
477 | "source": [
478 | "!comm -12 one_list_sorted two_list_sorted"
479 | ]
480 | },
481 | {
482 | "cell_type": "markdown",
483 | "metadata": {},
484 | "source": [
485 | "## What is diff?\n",
486 | "> command to **compare** two files line by line\n",
487 | "\n",
488 | "### Output\n",
489 | "- line numbers corresponding to the first file
\n",
490 | "- a letter (**a for add, c for change, or d for delete**)
\n",
491 | "- line numbers corresponding to the second file
"
492 | ]
493 | },
494 | {
495 | "cell_type": "code",
496 | "execution_count": 14,
497 | "metadata": {},
498 | "outputs": [
499 | {
500 | "name": "stdout",
501 | "output_type": "stream",
502 | "text": [
503 | "DIFF(1) User Commands DIFF(1)\r\n",
504 | "\r\n",
505 | "\r\n",
506 | "\r\n",
507 | "N\bNA\bAM\bME\bE\r\n",
508 | " diff - compare files line by line\r\n",
509 | "\r\n",
510 | "S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS\r\n",
511 | " d\bdi\bif\bff\bf [_\bO_\bP_\bT_\bI_\bO_\bN]... _\bF_\bI_\bL_\bE_\bS\r\n",
512 | "\r\n",
513 | "D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN\r\n",
514 | " Compare files line by line.\r\n",
515 | "\r\n",
516 | " -\b-i\bi -\b--\b-i\big\bgn\bno\bor\bre\be-\b-c\bca\bas\bse\be\r\n",
517 | " Ignore case differences in file contents.\r\n",
518 | "\r\n",
519 | " -\b--\b-i\big\bgn\bno\bor\bre\be-\b-f\bfi\bil\ble\be-\b-n\bna\bam\bme\be-\b-c\bca\bas\bse\be\r\n",
520 | " Ignore case when comparing file names.\r\n",
521 | "\r\n",
522 | " -\b--\b-n\bno\bo-\b-i\big\bgn\bno\bor\bre\be-\b-f\bfi\bil\ble\be-\b-n\bna\bam\bme\be-\b-c\bca\bas\bse\be\r\n",
523 | " Consider case when comparing file names.\r\n",
524 | "\r\n",
525 | " -\b-E\bE -\b--\b-i\big\bgn\bno\bor\bre\be-\b-t\bta\bab\bb-\b-e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bn\r\n",
526 | " Ignore changes due to tab expansion.\r\n",
527 | "\r\n",
528 | " -\b-b\bb -\b--\b-i\big\bgn\bno\bor\bre\be-\b-s\bsp\bpa\bac\bce\be-\b-c\bch\bha\ban\bng\bge\be\r\n",
529 | " Ignore changes in the amount of white space.\r\n",
530 | "\r\n",
531 | " -\b-w\bw -\b--\b-i\big\bgn\bno\bor\bre\be-\b-a\bal\bll\bl-\b-s\bsp\bpa\bac\bce\be\r\n",
532 | " Ignore all white space.\r\n",
533 | "\r\n",
534 | " -\b-B\bB -\b--\b-i\big\bgn\bno\bor\bre\be-\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs\r\n",
535 | " Ignore changes whose lines are all blank.\r\n",
536 | "\r\n",
537 | " -\b-I\bI RE -\b--\b-i\big\bgn\bno\bor\bre\be-\b-m\bma\bat\btc\bch\bhi\bin\bng\bg-\b-l\bli\bin\bne\bes\bs=_\bR_\bE\r\n",
538 | " Ignore changes whose lines all match RE.\r\n",
539 | "\r\n",
540 | " -\b--\b-s\bst\btr\bri\bip\bp-\b-t\btr\bra\bai\bil\bli\bin\bng\bg-\b-c\bcr\br\r\n",
541 | " Strip trailing carriage return on input.\r\n",
542 | "\r\n",
543 | " -\b-a\ba -\b--\b-t\bte\bex\bxt\bt\r\n",
544 | " Treat all files as text.\r\n",
545 | "\r\n",
546 | " -\b-c\bc -\b-C\bC NUM -\b--\b-c\bco\bon\bnt\bte\bex\bxt\bt[=_\bN_\bU_\bM]\r\n",
547 | " Output NUM (default 3) lines of copied context.\r\n",
548 | "\r\n",
549 | " -\b-u\bu -\b-U\bU NUM -\b--\b-u\bun\bni\bif\bfi\bie\bed\bd[=_\bN_\bU_\bM]\r\n",
550 | " Output NUM (default 3) lines of unified context.\r\n",
551 | "\r\n",
552 | " -\b--\b-l\bla\bab\bbe\bel\bl LABEL\r\n",
553 | " Use LABEL instead of file name.\r\n",
554 | "\r\n",
555 | " -\b-p\bp -\b--\b-s\bsh\bho\bow\bw-\b-c\bc-\b-f\bfu\bun\bnc\bct\bti\bio\bon\bn\r\n",
556 | " Show which C function each change is in.\r\n",
557 | "\r\n",
558 | " -\b-F\bF RE -\b--\b-s\bsh\bho\bow\bw-\b-f\bfu\bun\bnc\bct\bti\bio\bon\bn-\b-l\bli\bin\bne\be=_\bR_\bE\r\n",
559 | " Show the most recent line matching RE.\r\n",
560 | "\r\n",
561 | " -\b-q\bq -\b--\b-b\bbr\bri\bie\bef\bf\r\n",
562 | " Output only whether files differ.\r\n",
563 | "\r\n",
564 | " -\b-e\be -\b--\b-e\bed\bd\r\n",
565 | " Output an ed script.\r\n",
566 | "\r\n",
567 | " -\b--\b-n\bno\bor\brm\bma\bal\bl\r\n",
568 | " Output a normal diff.\r\n",
569 | "\r\n",
570 | " -\b-n\bn -\b--\b-r\brc\bcs\bs\r\n",
571 | " Output an RCS format diff.\r\n",
572 | "\r\n",
573 | " -\b-y\by -\b--\b-s\bsi\bid\bde\be-\b-b\bby\by-\b-s\bsi\bid\bde\be\r\n",
574 | " Output in two columns.\r\n",
575 | "\r\n",
576 | " -\b-W\bW NUM -\b--\b-w\bwi\bid\bdt\bth\bh=_\bN_\bU_\bM\r\n",
577 | " Output at most NUM (default 130) print columns.\r\n",
578 | "\r\n",
579 | " -\b--\b-l\ble\bef\bft\bt-\b-c\bco\bol\blu\bum\bmn\bn\r\n",
580 | " Output only the left column of common lines.\r\n",
581 | "\r\n",
582 | " -\b--\b-s\bsu\bup\bpp\bpr\bre\bes\bss\bs-\b-c\bco\bom\bmm\bmo\bon\bn-\b-l\bli\bin\bne\bes\bs\r\n",
583 | " Do not output common lines.\r\n",
584 | "\r\n",
585 | " -\b-D\bD NAME -\b--\b-i\bif\bfd\bde\bef\bf=_\bN_\bA_\bM_\bE\r\n",
586 | " Output merged file to show `#ifdef NAME' diffs.\r\n",
587 | "\r\n",
588 | " -\b--\b-G\bGT\bTY\bYP\bPE\bE-\b-g\bgr\bro\bou\bup\bp-\b-f\bfo\bor\brm\bma\bat\bt=_\bG_\bF_\bM_\bT\r\n",
589 | " Similar, but format GTYPE input groups with GFMT.\r\n",
590 | "\r\n",
591 | " -\b--\b-l\bli\bin\bne\be-\b-f\bfo\bor\brm\bma\bat\bt=_\bL_\bF_\bM_\bT\r\n",
592 | " Similar, but format all input lines with LFMT.\r\n",
593 | "\r\n",
594 | " -\b--\b-L\bLT\bTY\bYP\bPE\bE-\b-l\bli\bin\bne\be-\b-f\bfo\bor\brm\bma\bat\bt=_\bL_\bF_\bM_\bT\r\n",
595 | " Similar, but format LTYPE input lines with LFMT.\r\n",
596 | "\r\n",
597 | " LTYPE is `old', `new', or `unchanged'.\r\n",
598 | " GTYPE is LTYPE or `changed'.\r\n",
599 | "\r\n",
600 | " GFMT may contain:\r\n",
601 | "\r\n",
602 | " %< lines from FILE1\r\n",
603 | "\r\n",
604 | " %> lines from FILE2\r\n",
605 | "\r\n",
606 | " %= lines common to FILE1 and FILE2\r\n",
607 | "\r\n",
608 | " %[-][WIDTH][.[PREC]]{doxX}LETTER\r\n",
609 | " printf-style spec for LETTER\r\n",
610 | "\r\n",
611 | " LETTERs are as follows for new group, lower case for old group:\r\n",
612 | "\r\n",
613 | " F first line number\r\n",
614 | "\r\n",
615 | " L last line number\r\n",
616 | "\r\n",
617 | " N number of lines = L-F+1\r\n",
618 | "\r\n",
619 | " E F-1\r\n",
620 | "\r\n",
621 | " M L+1\r\n",
622 | "\r\n",
623 | " LFMT may contain:\r\n",
624 | "\r\n",
625 | " %L contents of line\r\n",
626 | "\r\n",
627 | " %l contents of line, excluding any trailing newline\r\n",
628 | "\r\n",
629 | " %[-][WIDTH][.[PREC]]{doxX}n\r\n",
630 | " printf-style spec for input line number\r\n",
631 | "\r\n",
632 | " Either GFMT or LFMT may contain:\r\n",
633 | "\r\n",
634 | " %% %\r\n",
635 | "\r\n",
636 | " %c'C' the single character C\r\n",
637 | "\r\n",
638 | " %c'\\OOO'\r\n",
639 | " the character with octal code OOO\r\n",
640 | "\r\n",
641 | " -\b-l\bl -\b--\b-p\bpa\bag\bgi\bin\bna\bat\bte\be\r\n",
642 | " Pass the output through `pr' to paginate it.\r\n",
643 | "\r\n",
644 | " -\b-t\bt -\b--\b-e\bex\bxp\bpa\ban\bnd\bd-\b-t\bta\bab\bbs\bs\r\n",
645 | " Expand tabs to spaces in output.\r\n",
646 | "\r\n",
647 | " -\b-T\bT -\b--\b-i\bin\bni\bit\bti\bia\bal\bl-\b-t\bta\bab\bb\r\n",
648 | " Make tabs line up by prepending a tab.\r\n",
649 | "\r\n",
650 | " -\b-r\br -\b--\b-r\bre\bec\bcu\bur\brs\bsi\biv\bve\be\r\n",
651 | " Recursively compare any subdirectories found.\r\n",
652 | "\r\n",
653 | " -\b-N\bN -\b--\b-n\bne\bew\bw-\b-f\bfi\bil\ble\be\r\n",
654 | " Treat absent files as empty.\r\n",
655 | "\r\n",
656 | " -\b--\b-u\bun\bni\bid\bdi\bir\bre\bec\bct\bti\bio\bon\bna\bal\bl-\b-n\bne\bew\bw-\b-f\bfi\bil\ble\be\r\n",
657 | " Treat absent first files as empty.\r\n",
658 | "\r\n",
659 | " -\b-s\bs -\b--\b-r\bre\bep\bpo\bor\brt\bt-\b-i\bid\bde\ben\bnt\bti\bic\bca\bal\bl-\b-f\bfi\bil\ble\bes\bs\r\n",
660 | " Report when two files are the same.\r\n",
661 | "\r\n",
662 | " -\b-x\bx PAT -\b--\b-e\bex\bxc\bcl\blu\bud\bde\be=_\bP_\bA_\bT\r\n",
663 | " Exclude files that match PAT.\r\n",
664 | "\r\n",
665 | " -\b-X\bX FILE -\b--\b-e\bex\bxc\bcl\blu\bud\bde\be-\b-f\bfr\bro\bom\bm=_\bF_\bI_\bL_\bE\r\n",
666 | " Exclude files that match any pattern in FILE.\r\n",
667 | "\r\n",
668 | " -\b-S\bS FILE -\b--\b-s\bst\bta\bar\brt\bti\bin\bng\bg-\b-f\bfi\bil\ble\be=_\bF_\bI_\bL_\bE\r\n",
669 | " Start with FILE when comparing directories.\r\n",
670 | "\r\n",
671 | " -\b--\b-f\bfr\bro\bom\bm-\b-f\bfi\bil\ble\be=_\bF_\bI_\bL_\bE_\b1\r\n",
672 | " Compare FILE1 to all operands. FILE1 can be a directory.\r\n",
673 | "\r\n",
674 | " -\b--\b-t\bto\bo-\b-f\bfi\bil\ble\be=_\bF_\bI_\bL_\bE_\b2\r\n",
675 | " Compare all operands to FILE2. FILE2 can be a directory.\r\n",
676 | "\r\n",
677 | " -\b--\b-h\bho\bor\bri\biz\bzo\bon\bn-\b-l\bli\bin\bne\bes\bs=_\bN_\bU_\bM\r\n",
678 | " Keep NUM lines of the common prefix and suffix.\r\n",
679 | "\r\n",
680 | " -\b-d\bd -\b--\b-m\bmi\bin\bni\bim\bma\bal\bl\r\n",
681 | " Try hard to find a smaller set of changes.\r\n",
682 | "\r\n",
683 | " -\b--\b-s\bsp\bpe\bee\bed\bd-\b-l\bla\bar\brg\bge\be-\b-f\bfi\bil\ble\bes\bs\r\n",
684 | " Assume large files and many scattered small changes.\r\n",
685 | "\r\n",
686 | " -\b-v\bv -\b--\b-v\bve\ber\brs\bsi\bio\bon\bn\r\n",
687 | " Output version info.\r\n",
688 | "\r\n",
689 | " -\b--\b-h\bhe\bel\blp\bp Output this help.\r\n",
690 | "\r\n",
691 | " FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE...\r\n",
692 | " DIR'. If -\b--\b-f\bfr\bro\bom\bm-\b-f\bfi\bil\ble\be or -\b--\b-t\bto\bo-\b-f\bfi\bil\ble\be is given, there are no restrictions\r\n",
693 | " on FILES. If a FILE is `-', read standard input.\r\n",
694 | "\r\n",
695 | "A\bAU\bUT\bTH\bHO\bOR\bR\r\n",
696 | " Written by Paul Eggert, Mike Haertel, David Hayes, Richard Stallman,\r\n",
697 | " and Len Tower.\r\n",
698 | "\r\n",
699 | "R\bRE\bEP\bPO\bOR\bRT\bTI\bIN\bNG\bG B\bBU\bUG\bGS\bS\r\n",
700 | " Report bugs to .\r\n",
701 | "\r\n",
702 | "C\bCO\bOP\bPY\bYR\bRI\bIG\bGH\bHT\bT\r\n",
703 | " Copyright (C) 2002 Free Software Foundation, Inc.\r\n",
704 | "\r\n",
705 | " This program comes with NO WARRANTY, to the extent permitted by law.\r\n",
706 | " You may redistribute copies of this program under the terms of the GNU\r\n",
707 | " General Public License. For more information about these matters, see\r\n",
708 | " the file named COPYING.\r\n",
709 | "\r\n",
710 | "S\bSE\bEE\bE A\bAL\bLS\bSO\bO\r\n",
711 | " The full documentation for d\bdi\bif\bff\bf is maintained as a Texinfo manual. If\r\n",
712 | " the i\bin\bnf\bfo\bo and d\bdi\bif\bff\bf programs are properly installed at your site, the\r\n",
713 | " command\r\n",
714 | "\r\n",
715 | " i\bin\bnf\bfo\bo d\bdi\bif\bff\bf\r\n",
716 | "\r\n",
717 | " should give you access to the complete manual.\r\n",
718 | "\r\n",
719 | "\r\n",
720 | "\r\n",
721 | "diffutils 2.8.1 April 2002 DIFF(1)\r\n"
722 | ]
723 | }
724 | ],
725 | "source": [
726 | "!man diff"
727 | ]
728 | },
729 | {
730 | "cell_type": "code",
731 | "execution_count": 15,
732 | "metadata": {},
733 | "outputs": [
734 | {
735 | "name": "stdout",
736 | "output_type": "stream",
737 | "text": [
738 | "A\r\n",
739 | "B\r\n",
740 | "C\r\n",
741 | "D\r\n",
742 | "E\r\n",
743 | "F\r\n",
744 | "G\r\n"
745 | ]
746 | }
747 | ],
748 | "source": [
749 | "!cat one_list"
750 | ]
751 | },
752 | {
753 | "cell_type": "code",
754 | "execution_count": 16,
755 | "metadata": {},
756 | "outputs": [
757 | {
758 | "name": "stdout",
759 | "output_type": "stream",
760 | "text": [
761 | "A\r\n",
762 | "A\r\n",
763 | "B\r\n",
764 | "D\r\n",
765 | "C\r\n",
766 | "E\r\n",
767 | "F\r\n"
768 | ]
769 | }
770 | ],
771 | "source": [
772 | "!cat two_list"
773 | ]
774 | },
775 | {
776 | "cell_type": "code",
777 | "execution_count": 17,
778 | "metadata": {},
779 | "outputs": [
780 | {
781 | "name": "stdout",
782 | "output_type": "stream",
783 | "text": [
784 | "1a2\r\n",
785 | "> A\r\n",
786 | "3d3\r\n",
787 | "< C\r\n",
788 | "4a5\r\n",
789 | "> C\r\n",
790 | "7d7\r\n",
791 | "< G\r\n"
792 | ]
793 | }
794 | ],
795 | "source": [
796 | "!diff one_list two_list"
797 | ]
798 | },
799 | {
800 | "cell_type": "code",
801 | "execution_count": 18,
802 | "metadata": {},
803 | "outputs": [
804 | {
805 | "name": "stdout",
806 | "output_type": "stream",
807 | "text": [
808 | "A\t\t\t\t\t\t\t\tA\r\n",
809 | "\t\t\t\t\t\t\t >\tA\r\n",
810 | "B\t\t\t\t\t\t\t\tB\r\n",
811 | "C\t\t\t\t\t\t\t <\r\n",
812 | "D\t\t\t\t\t\t\t\tD\r\n",
813 | "\t\t\t\t\t\t\t >\tC\r\n",
814 | "E\t\t\t\t\t\t\t\tE\r\n",
815 | "F\t\t\t\t\t\t\t\tF\r\n",
816 | "G\t\t\t\t\t\t\t <\r\n"
817 | ]
818 | }
819 | ],
820 | "source": [
821 | "!diff -y one_list two_list"
822 | ]
823 | },
824 | {
825 | "cell_type": "markdown",
826 | "metadata": {},
827 | "source": [
828 | "## What is uniq?\n",
829 | "> used to report or filter out repeated lines in a file"
830 | ]
831 | },
832 | {
833 | "cell_type": "code",
834 | "execution_count": 19,
835 | "metadata": {},
836 | "outputs": [
837 | {
838 | "name": "stdout",
839 | "output_type": "stream",
840 | "text": [
841 | "\r\n",
842 | "UNIQ(1) BSD General Commands Manual UNIQ(1)\r\n",
843 | "\r\n",
844 | "N\bNA\bAM\bME\bE\r\n",
845 | " u\bun\bni\biq\bq -- report or filter out repeated lines in a file\r\n",
846 | "\r\n",
847 | "S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS\r\n",
848 | " u\bun\bni\biq\bq [-\b-c\bc | -\b-d\bd | -\b-u\bu] [-\b-i\bi] [-\b-f\bf _\bn_\bu_\bm] [-\b-s\bs _\bc_\bh_\ba_\br_\bs] [_\bi_\bn_\bp_\bu_\bt_\b__\bf_\bi_\bl_\be [_\bo_\bu_\bt_\bp_\bu_\bt_\b__\bf_\bi_\bl_\be]]\r\n",
849 | "\r\n",
850 | "D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN\r\n",
851 | " The u\bun\bni\biq\bq utility reads the specified _\bi_\bn_\bp_\bu_\bt_\b__\bf_\bi_\bl_\be comparing adjacent lines,\r\n",
852 | " and writes a copy of each unique input line to the _\bo_\bu_\bt_\bp_\bu_\bt_\b__\bf_\bi_\bl_\be. If\r\n",
853 | " _\bi_\bn_\bp_\bu_\bt_\b__\bf_\bi_\bl_\be is a single dash (`-\b-') or absent, the standard input is read.\r\n",
854 | " If _\bo_\bu_\bt_\bp_\bu_\bt_\b__\bf_\bi_\bl_\be is absent, standard output is used for output. The second\r\n",
855 | " and succeeding copies of identical adjacent input lines are not written.\r\n",
856 | " Repeated lines in the input will not be detected if they are not adja-\r\n",
857 | " cent, so it may be necessary to sort the files first.\r\n",
858 | "\r\n",
859 | " The following options are available:\r\n",
860 | "\r\n",
861 | " -\b-c\bc Precede each output line with the count of the number of times\r\n",
862 | " the line occurred in the input, followed by a single space.\r\n",
863 | "\r\n",
864 | " -\b-d\bd Only output lines that are repeated in the input.\r\n",
865 | "\r\n",
866 | " -\b-f\bf _\bn_\bu_\bm Ignore the first _\bn_\bu_\bm fields in each input line when doing compar-\r\n",
867 | " isons. A field is a string of non-blank characters separated\r\n",
868 | " from adjacent fields by blanks. Field numbers are one based,\r\n",
869 | " i.e., the first field is field one.\r\n",
870 | "\r\n",
871 | " -\b-s\bs _\bc_\bh_\ba_\br_\bs\r\n",
872 | " Ignore the first _\bc_\bh_\ba_\br_\bs characters in each input line when doing\r\n",
873 | " comparisons. If specified in conjunction with the -\b-f\bf option, the\r\n",
874 | " first _\bc_\bh_\ba_\br_\bs characters after the first _\bn_\bu_\bm fields will be\r\n",
875 | " ignored. Character numbers are one based, i.e., the first char-\r\n",
876 | " acter is character one.\r\n",
877 | "\r\n",
878 | " -\b-u\bu Only output lines that are not repeated in the input.\r\n",
879 | "\r\n",
880 | " -\b-i\bi Case insensitive comparison of lines.\r\n",
881 | "\r\n",
882 | "E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT\r\n",
883 | " The LANG, LC_ALL, LC_COLLATE and LC_CTYPE environment variables affect\r\n",
884 | " the execution of u\bun\bni\biq\bq as described in environ(7).\r\n",
885 | "\r\n",
886 | "E\bEX\bXI\bIT\bT S\bST\bTA\bAT\bTU\bUS\bS\r\n",
887 | " The u\bun\bni\biq\bq utility exits 0 on success, and >0 if an error occurs.\r\n",
888 | "\r\n",
889 | "C\bCO\bOM\bMP\bPA\bAT\bTI\bIB\bBI\bIL\bLI\bIT\bTY\bY\r\n",
890 | " The historic +\b+_\bn_\bu_\bm_\bb_\be_\br and -\b-_\bn_\bu_\bm_\bb_\be_\br options have been deprecated but are\r\n",
891 | " still supported in this implementation.\r\n",
892 | "\r\n",
893 | "S\bSE\bEE\bE A\bAL\bLS\bSO\bO\r\n",
894 | " sort(1)\r\n",
895 | "\r\n",
896 | "S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS\r\n",
897 | " The u\bun\bni\biq\bq utility conforms to IEEE Std 1003.1-2001 (``POSIX.1'') as\r\n",
898 | " amended by Cor. 1-2002.\r\n",
899 | "\r\n",
900 | "H\bHI\bIS\bST\bTO\bOR\bRY\bY\r\n",
901 | " A u\bun\bni\biq\bq command appeared in Version 3 AT&T UNIX.\r\n",
902 | "\r\n",
903 | "BSD July 3, 2004 BSD\r\n"
904 | ]
905 | }
906 | ],
907 | "source": [
908 | "!man uniq"
909 | ]
910 | },
911 | {
912 | "cell_type": "code",
913 | "execution_count": 20,
914 | "metadata": {},
915 | "outputs": [
916 | {
917 | "name": "stdout",
918 | "output_type": "stream",
919 | "text": [
920 | "Roses\r\n",
921 | "Roses\r\n",
922 | "Lillies\r\n",
923 | "Tulips\r\n",
924 | "Peony\r\n",
925 | "Tulips\r\n"
926 | ]
927 | }
928 | ],
929 | "source": [
930 | "!cat flowers"
931 | ]
932 | },
933 | {
934 | "cell_type": "code",
935 | "execution_count": 21,
936 | "metadata": {},
937 | "outputs": [
938 | {
939 | "name": "stdout",
940 | "output_type": "stream",
941 | "text": [
942 | " 2 Roses\r\n",
943 | " 1 Lillies\r\n",
944 | " 1 Tulips\r\n",
945 | " 1 Peony\r\n",
946 | " 1 Tulips\r\n"
947 | ]
948 | }
949 | ],
950 | "source": [
951 | "!uniq -c flowers"
952 | ]
953 | },
954 | {
955 | "cell_type": "code",
956 | "execution_count": 22,
957 | "metadata": {},
958 | "outputs": [
959 | {
960 | "name": "stdout",
961 | "output_type": "stream",
962 | "text": [
963 | "Roses\r\n"
964 | ]
965 | }
966 | ],
967 | "source": [
968 | "!uniq -d flowers"
969 | ]
970 | },
971 | {
972 | "cell_type": "code",
973 | "execution_count": 23,
974 | "metadata": {},
975 | "outputs": [],
976 | "source": [
977 | "!sort flowers > flowers_sorted"
978 | ]
979 | },
980 | {
981 | "cell_type": "code",
982 | "execution_count": 24,
983 | "metadata": {},
984 | "outputs": [
985 | {
986 | "name": "stdout",
987 | "output_type": "stream",
988 | "text": [
989 | "Lillies\r\n",
990 | "Peony\r\n",
991 | "Roses\r\n",
992 | "Roses\r\n",
993 | "Tulips\r\n",
994 | "Tulips\r\n"
995 | ]
996 | }
997 | ],
998 | "source": [
999 | "cat flowers_sorted"
1000 | ]
1001 | },
1002 | {
1003 | "cell_type": "code",
1004 | "execution_count": 25,
1005 | "metadata": {},
1006 | "outputs": [
1007 | {
1008 | "name": "stdout",
1009 | "output_type": "stream",
1010 | "text": [
1011 | " 1 Lillies\r\n",
1012 | " 1 Peony\r\n",
1013 | " 2 Roses\r\n",
1014 | " 2 Tulips\r\n"
1015 | ]
1016 | }
1017 | ],
1018 | "source": [
1019 | "!uniq -c flowers_sorted"
1020 | ]
1021 | },
1022 | {
1023 | "cell_type": "code",
1024 | "execution_count": 26,
1025 | "metadata": {},
1026 | "outputs": [
1027 | {
1028 | "name": "stdout",
1029 | "output_type": "stream",
1030 | "text": [
1031 | "Roses\r\n",
1032 | "Tulips\r\n"
1033 | ]
1034 | }
1035 | ],
1036 | "source": [
1037 | "!uniq -d flowers_sorted"
1038 | ]
1039 | },
1040 | {
1041 | "cell_type": "code",
1042 | "execution_count": 27,
1043 | "metadata": {},
1044 | "outputs": [
1045 | {
1046 | "name": "stdout",
1047 | "output_type": "stream",
1048 | "text": [
1049 | "Lillies\r\n",
1050 | "Peony\r\n",
1051 | "Roses\r\n",
1052 | "Tulips\r\n"
1053 | ]
1054 | }
1055 | ],
1056 | "source": [
1057 | "!uniq flowers_sorted"
1058 | ]
1059 | },
1060 | {
1061 | "cell_type": "code",
1062 | "execution_count": 28,
1063 | "metadata": {},
1064 | "outputs": [
1065 | {
1066 | "name": "stdout",
1067 | "output_type": "stream",
1068 | "text": [
1069 | "Roses\r\n",
1070 | "Lillies\r\n",
1071 | "Tulips\r\n",
1072 | "Peony\r\n",
1073 | "Tulips\r\n"
1074 | ]
1075 | }
1076 | ],
1077 | "source": [
1078 | "!uniq flowers"
1079 | ]
1080 | },
1081 | {
1082 | "cell_type": "code",
1083 | "execution_count": 29,
1084 | "metadata": {},
1085 | "outputs": [],
1086 | "source": []
1087 | },
1088 | {
1089 | "cell_type": "code",
1090 | "execution_count": null,
1091 | "metadata": {},
1092 | "outputs": [],
1093 | "source": []
1094 | }
1095 | ],
1096 | "metadata": {
1097 | "kernelspec": {
1098 | "display_name": "Python 3",
1099 | "language": "python",
1100 | "name": "python3"
1101 | },
1102 | "language_info": {
1103 | "codemirror_mode": {
1104 | "name": "ipython",
1105 | "version": 3
1106 | },
1107 | "file_extension": ".py",
1108 | "mimetype": "text/x-python",
1109 | "name": "python",
1110 | "nbconvert_exporter": "python",
1111 | "pygments_lexer": "ipython3",
1112 | "version": "3.6.4"
1113 | }
1114 | },
1115 | "nbformat": 4,
1116 | "nbformat_minor": 2
1117 | }
1118 |
--------------------------------------------------------------------------------
/Jude/snfs160_8.txt:
--------------------------------------------------------------------------------
1 | /stornext/snfs160/next-gen/
2 | /stornext/snfs160/next-gen/
3 | /stornext/snfs160/next-gen/
4 | /stornext/snfs160/next-gen/
5 | /stornext/snfs160/next-gen/
6 | /stornext/snfs160/next-gen/
7 | /stornext/snfs160/next-gen/
8 | /stornext/snfs160/next-gen/
9 | /stornext/snfs160/next-gen/
10 | /stornext/snfs160/next-gen/
11 | /stornext/snfs160/next-gen/
12 | /stornext/snfs160/next-gen/
13 | /stornext/snfs160/next-gen/
14 | /stornext/snfs160/next-gen/
15 | /stornext/snfs160/next-gen/
16 | /stornext/snfs160/next-gen/
17 | /stornext/snfs160/next-gen/
18 | /stornext/snfs160/next-gen/
19 | /stornext/snfs160/next-gen/
20 | /stornext/snfs160/next-gen/
21 | /stornext/snfs160/next-gen/
22 | /stornext/snfs160/next-gen/
23 | /stornext/snfs160/next-gen/
24 | /stornext/snfs160/next-gen/
25 | /stornext/snfs160/next-gen/
26 | /stornext/snfs160/next-gen/
27 | /stornext/snfs160/next-gen/
28 | /stornext/snfs160/next-gen/
29 | /stornext/snfs160/next-gen/
30 | /stornext/snfs160/next-gen/
31 | /stornext/snfs160/next-gen/
32 | /stornext/snfs160/next-gen/
33 | /stornext/snfs160/next-gen/
34 | /stornext/snfs160/next-gen/
35 | /stornext/snfs160/next-gen/
36 | /stornext/snfs160/next-gen/
37 | /stornext/snfs160/next-gen/
38 | /stornext/snfs160/next-gen/
39 | /stornext/snfs160/next-gen/
40 | /stornext/snfs160/next-gen/
41 | /stornext/snfs160/next-gen/
42 | /stornext/snfs160/next-gen/
43 | /stornext/snfs160/next-gen/
44 | /stornext/snfs160/next-gen/
45 | /stornext/snfs160/next-gen/
46 | /stornext/snfs160/next-gen/
47 | /stornext/snfs160/next-gen/
48 | /stornext/snfs160/next-gen/
49 | /stornext/snfs160/next-gen/
50 | /stornext/snfs160/next-gen/
51 | /stornext/snfs160/next-gen/
52 | /stornext/snfs160/next-gen/
53 | /stornext/snfs160/next-gen/
54 | /stornext/snfs160/next-gen/
55 | /stornext/snfs160/next-gen/
56 | /stornext/snfs160/next-gen/
57 | /stornext/snfs160/next-gen/
58 | /stornext/snfs160/next-gen/
59 | /stornext/snfs160/next-gen/
60 | /stornext/snfs160/next-gen/
61 | /stornext/snfs160/next-gen/
62 | /stornext/snfs160/next-gen/
63 | /stornext/snfs160/next-gen/
64 | /stornext/snfs160/next-gen/
65 | /stornext/snfs160/next-gen/
66 | /stornext/snfs160/next-gen/
67 | /stornext/snfs160/next-gen/
68 | /stornext/snfs160/next-gen/
69 | /stornext/snfs160/next-gen/
70 | /stornext/snfs160/next-gen/
71 | /stornext/snfs160/next-gen/
72 | /stornext/snfs160/next-gen/
73 | /stornext/snfs160/next-gen/
74 | /stornext/snfs160/next-gen/
75 | /stornext/snfs160/next-gen/
76 | /stornext/snfs160/next-gen/
77 | /stornext/snfs160/next-gen/
78 | /stornext/snfs160/next-gen/
79 | /stornext/snfs160/next-gen/
80 | /stornext/snfs160/next-gen/
81 | /stornext/snfs160/next-gen/
82 | /stornext/snfs160/next-gen/
83 | /stornext/snfs160/next-gen/
84 | /stornext/snfs160/next-gen/
85 | /stornext/snfs160/next-gen/
86 | /stornext/snfs160/next-gen/
87 | /stornext/snfs160/next-gen/
88 | /stornext/snfs160/next-gen/
89 | /stornext/snfs160/next-gen/
90 | /stornext/snfs160/next-gen/
91 | /stornext/snfs160/next-gen/
92 | /stornext/snfs160/next-gen/
93 | /stornext/snfs160/next-gen/
94 | /stornext/snfs160/next-gen/
95 | /stornext/snfs160/next-gen/
96 | /stornext/snfs160/next-gen/
97 | /stornext/snfs160/next-gen/
98 | /stornext/snfs160/next-gen/
99 | /stornext/snfs160/next-gen/
100 | /stornext/snfs160/next-gen/
101 | /stornext/snfs160/next-gen/
102 | /stornext/snfs160/next-gen/
103 | /stornext/snfs160/next-gen/
104 | /stornext/snfs160/next-gen/
105 | /stornext/snfs160/next-gen/
106 | /stornext/snfs160/next-gen/
107 | /stornext/snfs160/next-gen/
108 | /stornext/snfs160/next-gen/
109 | /stornext/snfs160/next-gen/
110 | /stornext/snfs160/next-gen/
111 | /stornext/snfs160/next-gen/
112 | /stornext/snfs160/next-gen/
113 | /stornext/snfs160/next-gen/
114 | /stornext/snfs160/next-gen/
115 | /stornext/snfs160/next-gen/
116 | /stornext/snfs160/next-gen/
117 | /stornext/snfs160/next-gen/
118 | /stornext/snfs160/next-gen/
119 | /stornext/snfs160/next-gen/
120 | /stornext/snfs160/next-gen/
121 | /stornext/snfs160/next-gen/
122 | /stornext/snfs160/next-gen/
123 | /stornext/snfs160/next-gen/
124 | /stornext/snfs160/next-gen/
125 | /stornext/snfs160/next-gen/
126 | /stornext/snfs160/next-gen/
127 | /stornext/snfs160/next-gen/
128 | /stornext/snfs160/next-gen/
129 | /stornext/snfs160/next-gen/
130 | /stornext/snfs160/next-gen/
131 | /stornext/snfs160/next-gen/
132 | /stornext/snfs160/next-gen/
133 | /stornext/snfs160/next-gen/
134 | /stornext/snfs160/next-gen/
135 | /stornext/snfs160/next-gen/
136 | /stornext/snfs160/next-gen/
137 | /stornext/snfs160/next-gen/
138 | /stornext/snfs160/next-gen/
139 | /stornext/snfs160/next-gen/
140 | /stornext/snfs160/next-gen/
141 | /stornext/snfs160/next-gen/
142 | /stornext/snfs160/next-gen/
143 | /stornext/snfs160/next-gen/
144 | /stornext/snfs160/next-gen/
145 | /stornext/snfs160/next-gen/
146 | /stornext/snfs160/next-gen/
147 | /stornext/snfs160/next-gen/
148 | /stornext/snfs160/next-gen/
149 | /stornext/snfs160/next-gen/
150 | /stornext/snfs160/next-gen/
151 | /stornext/snfs160/next-gen/
152 | /stornext/snfs160/next-gen/
153 | /stornext/snfs160/next-gen/
154 | /stornext/snfs160/next-gen/
155 | /stornext/snfs160/next-gen/
156 | /stornext/snfs160/next-gen/
157 | /stornext/snfs160/next-gen/
158 | /stornext/snfs160/next-gen/
159 | /stornext/snfs160/next-gen/
160 | /stornext/snfs160/next-gen/
161 | /stornext/snfs160/next-gen/
162 | /stornext/snfs160/next-gen/
163 | /stornext/snfs160/next-gen/
164 | /stornext/snfs160/next-gen/
165 | /stornext/snfs160/next-gen/
166 | /stornext/snfs160/next-gen/
167 | /stornext/snfs160/next-gen/
168 | /stornext/snfs160/next-gen/
169 | /stornext/snfs160/next-gen/
170 | /stornext/snfs160/next-gen/
171 | /stornext/snfs160/next-gen/
172 | /stornext/snfs160/next-gen/
173 | /stornext/snfs160/next-gen/
174 | /stornext/snfs160/next-gen/
175 | /stornext/snfs160/next-gen/
176 | /stornext/snfs160/next-gen/
177 | /stornext/snfs160/next-gen/
178 | /stornext/snfs160/next-gen/
179 | /stornext/snfs160/next-gen/
180 | /stornext/snfs160/next-gen/
181 | /stornext/snfs160/next-gen/
182 | /stornext/snfs160/next-gen/
183 | /stornext/snfs160/next-gen/
184 | /stornext/snfs160/next-gen/
185 | /stornext/snfs160/next-gen/
186 | /stornext/snfs160/next-gen/
187 | /stornext/snfs160/next-gen/
188 | /stornext/snfs160/next-gen/
189 | /stornext/snfs160/next-gen/
190 | /stornext/snfs160/next-gen/
191 | /stornext/snfs160/next-gen/
192 | /stornext/snfs160/next-gen/
193 | /stornext/snfs160/next-gen/
194 | /stornext/snfs160/next-gen/
195 | /stornext/snfs160/next-gen/
196 | /stornext/snfs160/next-gen/
197 | /stornext/snfs160/next-gen/
198 | /stornext/snfs160/next-gen/
199 | /stornext/snfs160/next-gen/
200 | /stornext/snfs160/next-gen/
201 | /stornext/snfs160/next-gen/
202 | /stornext/snfs160/next-gen/
203 | /stornext/snfs160/next-gen/
204 | /stornext/snfs160/next-gen/
205 | /stornext/snfs160/next-gen/
206 | /stornext/snfs160/next-gen/
207 | /stornext/snfs160/next-gen/
208 | /stornext/snfs160/next-gen/
209 | /stornext/snfs160/next-gen/
210 | /stornext/snfs160/next-gen/
211 | /stornext/snfs160/next-gen/
212 | /stornext/snfs160/next-gen/
213 | /stornext/snfs160/next-gen/
214 | /stornext/snfs160/next-gen/
215 | /stornext/snfs160/next-gen/
216 | /stornext/snfs160/next-gen/
217 | /stornext/snfs160/next-gen/
218 | /stornext/snfs160/next-gen/
219 | /stornext/snfs160/next-gen/
220 | /stornext/snfs160/next-gen/
221 | /stornext/snfs160/next-gen/
222 | /stornext/snfs160/next-gen/
223 | /stornext/snfs160/next-gen/
224 | /stornext/snfs160/next-gen/
225 | /stornext/snfs160/next-gen/
226 | /stornext/snfs160/next-gen/
227 | /stornext/snfs160/next-gen/
228 | /stornext/snfs160/next-gen/
229 | /stornext/snfs160/next-gen/
230 | /stornext/snfs160/next-gen/
231 | /stornext/snfs160/next-gen/
232 | /stornext/snfs160/next-gen/
233 | /stornext/snfs160/next-gen/
234 | /stornext/snfs160/next-gen/
235 | /stornext/snfs160/next-gen/
236 | /stornext/snfs160/next-gen/
237 | /stornext/snfs160/next-gen/
238 | /stornext/snfs160/next-gen/
239 | /stornext/snfs160/next-gen/
240 | /stornext/snfs160/next-gen/
241 | /stornext/snfs160/next-gen/
242 | /stornext/snfs160/next-gen/
243 | /stornext/snfs160/next-gen/
244 | /stornext/snfs160/next-gen/
245 | /stornext/snfs160/next-gen/
246 | /stornext/snfs160/next-gen/
247 | /stornext/snfs160/next-gen/
248 | /stornext/snfs160/next-gen/
249 | /stornext/snfs160/next-gen/
250 | /stornext/snfs160/next-gen/
251 | /stornext/snfs160/next-gen/
252 | /stornext/snfs160/next-gen/
253 | /stornext/snfs160/next-gen/
254 | /stornext/snfs160/next-gen/
255 | /stornext/snfs160/next-gen/
256 | /stornext/snfs160/next-gen/
257 | /stornext/snfs160/next-gen/
258 | /stornext/snfs160/next-gen/
259 | /stornext/snfs160/next-gen/
260 | /stornext/snfs160/next-gen/
261 | /stornext/snfs160/next-gen/
262 | /stornext/snfs160/next-gen/
263 | /stornext/snfs160/next-gen/
264 | /stornext/snfs160/next-gen/
265 | /stornext/snfs160/next-gen/
266 | /stornext/snfs160/next-gen/
267 | /stornext/snfs160/next-gen/
268 | /stornext/snfs160/next-gen/
269 | /stornext/snfs160/next-gen/
270 | /stornext/snfs160/next-gen/
271 | /stornext/snfs160/next-gen/
272 | /stornext/snfs160/next-gen/
273 | /stornext/snfs160/next-gen/
274 | /stornext/snfs160/next-gen/
275 | /stornext/snfs160/next-gen/
276 | /stornext/snfs160/next-gen/
277 | /stornext/snfs160/next-gen/
278 | /stornext/snfs160/next-gen/
279 | /stornext/snfs160/next-gen/
280 | /stornext/snfs160/next-gen/
281 | /stornext/snfs160/next-gen/
282 | /stornext/snfs160/next-gen/
283 | /stornext/snfs160/next-gen/
284 | /stornext/snfs160/next-gen/
285 | /stornext/snfs160/next-gen/
286 | /stornext/snfs160/next-gen/
287 | /stornext/snfs160/next-gen/
288 | /stornext/snfs160/next-gen/
289 | /stornext/snfs160/next-gen/
290 | /stornext/snfs160/next-gen/
291 | /stornext/snfs160/next-gen/
292 | /stornext/snfs160/next-gen/
293 | /stornext/snfs160/next-gen/
294 | /stornext/snfs160/next-gen/
295 | /stornext/snfs160/next-gen/
296 | /stornext/snfs160/next-gen/
297 | /stornext/snfs160/next-gen/
298 | /stornext/snfs160/next-gen/
299 | /stornext/snfs160/next-gen/
300 | /stornext/snfs160/next-gen/
301 | /stornext/snfs160/next-gen/
302 | /stornext/snfs160/next-gen/
303 | /stornext/snfs160/next-gen/
304 | /stornext/snfs160/next-gen/
305 | /stornext/snfs160/next-gen/
306 | /stornext/snfs160/next-gen/
307 | /stornext/snfs160/next-gen/
308 | /stornext/snfs160/next-gen/
309 | /stornext/snfs160/next-gen/
310 | /stornext/snfs160/next-gen/
311 | /stornext/snfs160/next-gen/
312 | /stornext/snfs160/next-gen/
313 | /stornext/snfs160/next-gen/
314 | /stornext/snfs160/next-gen/
315 | /stornext/snfs160/next-gen/
316 | /stornext/snfs160/next-gen/
317 | /stornext/snfs160/next-gen/
318 | /stornext/snfs160/next-gen/
319 | /stornext/snfs160/next-gen/
320 | /stornext/snfs160/next-gen/
321 | /stornext/snfs160/next-gen/
322 | /stornext/snfs160/next-gen/
323 | /stornext/snfs160/next-gen/
324 | /stornext/snfs160/next-gen/
325 | /stornext/snfs160/next-gen/
326 | /stornext/snfs160/next-gen/
327 | /stornext/snfs160/next-gen/
328 | /stornext/snfs160/next-gen/
329 | /stornext/snfs160/next-gen/
330 | /stornext/snfs160/next-gen/
331 | /stornext/snfs160/next-gen/
332 | /stornext/snfs160/next-gen/
333 | /stornext/snfs160/next-gen/
334 | /stornext/snfs160/next-gen/
335 | /stornext/snfs160/next-gen/
336 | /stornext/snfs160/next-gen/
337 | /stornext/snfs160/next-gen/
338 | /stornext/snfs160/next-gen/
339 | /stornext/snfs160/next-gen/
340 | /stornext/snfs160/next-gen/
341 | /stornext/snfs160/next-gen/
342 | /stornext/snfs160/next-gen/
343 | /stornext/snfs160/next-gen/
344 | /stornext/snfs160/next-gen/
345 | /stornext/snfs160/next-gen/
346 | /stornext/snfs160/next-gen/
347 | /stornext/snfs160/next-gen/
348 | /stornext/snfs160/next-gen/
349 | /stornext/snfs160/next-gen/
350 | /stornext/snfs160/next-gen/
351 | /stornext/snfs160/next-gen/
352 | /stornext/snfs160/next-gen/
353 | /stornext/snfs160/next-gen/
354 | /stornext/snfs160/next-gen/
355 | /stornext/snfs160/next-gen/
356 | /stornext/snfs160/next-gen/
357 | /stornext/snfs160/next-gen/
358 | /stornext/snfs160/next-gen/
359 | /stornext/snfs160/next-gen/
360 | /stornext/snfs160/next-gen/
361 | /stornext/snfs160/next-gen/
362 | /stornext/snfs160/next-gen/
363 | /stornext/snfs160/next-gen/
364 | /stornext/snfs160/next-gen/
365 | /stornext/snfs160/next-gen/
366 | /stornext/snfs160/next-gen/
367 | /stornext/snfs160/next-gen/
368 | /stornext/snfs160/next-gen/
369 | /stornext/snfs160/next-gen/
370 | /stornext/snfs160/next-gen/
371 | /stornext/snfs160/next-gen/
372 | /stornext/snfs160/next-gen/
373 | /stornext/snfs160/next-gen/
374 | /stornext/snfs160/next-gen/
375 | /stornext/snfs160/next-gen/
376 | /stornext/snfs160/next-gen/
377 | /stornext/snfs160/next-gen/
378 | /stornext/snfs160/next-gen/
379 | /stornext/snfs160/next-gen/
380 | /stornext/snfs160/next-gen/
381 | /stornext/snfs160/next-gen/
382 | /stornext/snfs160/next-gen/
383 | /stornext/snfs160/next-gen/
384 | /stornext/snfs160/next-gen/
385 | /stornext/snfs160/next-gen/
386 | /stornext/snfs160/next-gen/
387 | /stornext/snfs160/next-gen/
388 | /stornext/snfs160/next-gen/
389 | /stornext/snfs160/next-gen/
390 | /stornext/snfs160/next-gen/
391 | /stornext/snfs160/next-gen/
392 | /stornext/snfs160/next-gen/
393 | /stornext/snfs160/next-gen/
394 | /stornext/snfs160/next-gen/
395 | /stornext/snfs160/next-gen/
396 | /stornext/snfs160/next-gen/
397 | /stornext/snfs160/next-gen/
398 | /stornext/snfs160/next-gen/
399 | /stornext/snfs160/next-gen/
400 | /stornext/snfs160/next-gen/
401 | /stornext/snfs160/next-gen/
402 | /stornext/snfs160/next-gen/
403 | /stornext/snfs160/next-gen/
404 | /stornext/snfs160/next-gen/
405 | /stornext/snfs160/next-gen/
406 | /stornext/snfs160/next-gen/
407 | /stornext/snfs160/next-gen/
408 | /stornext/snfs160/next-gen/
409 | /stornext/snfs160/next-gen/
410 | /stornext/snfs160/next-gen/
411 | /stornext/snfs160/next-gen/
412 | /stornext/snfs160/next-gen/
413 | /stornext/snfs160/next-gen/
414 | /stornext/snfs160/next-gen/
415 | /stornext/snfs160/next-gen/
416 | /stornext/snfs160/next-gen/
417 | /stornext/snfs160/next-gen/
418 | /stornext/snfs160/next-gen/
419 | /stornext/snfs160/next-gen/
420 | /stornext/snfs160/next-gen/
421 | /stornext/snfs160/next-gen/
422 | /stornext/snfs160/next-gen/
423 | /stornext/snfs160/next-gen/
424 | /stornext/snfs160/next-gen/
425 | /stornext/snfs160/next-gen/
426 | /stornext/snfs160/next-gen/
427 | /stornext/snfs160/next-gen/
428 | /stornext/snfs160/next-gen/
429 | /stornext/snfs160/next-gen/
430 | /stornext/snfs160/next-gen/
431 | /stornext/snfs160/next-gen/
432 | /stornext/snfs160/next-gen/
433 | /stornext/snfs160/next-gen/
434 | /stornext/snfs160/next-gen/
435 | /stornext/snfs160/next-gen/
436 | /stornext/snfs160/next-gen/
437 | /stornext/snfs160/next-gen/
438 | /stornext/snfs160/next-gen/
439 | /stornext/snfs160/next-gen/
440 | /stornext/snfs160/next-gen/
441 | /stornext/snfs160/next-gen/
442 | /stornext/snfs160/next-gen/
443 | /stornext/snfs160/next-gen/
444 | /stornext/snfs160/next-gen/
445 | /stornext/snfs160/next-gen/
446 | /stornext/snfs160/next-gen/
447 | /stornext/snfs160/next-gen/
448 | /stornext/snfs160/next-gen/
449 | /stornext/snfs160/next-gen/
450 | /stornext/snfs160/next-gen/
451 | /stornext/snfs160/next-gen/
452 | /stornext/snfs160/next-gen/
453 | /stornext/snfs160/next-gen/
454 | /stornext/snfs160/next-gen/
455 | /stornext/snfs160/next-gen/
456 | /stornext/snfs160/next-gen/
457 | /stornext/snfs160/next-gen/
458 | /stornext/snfs160/next-gen/
459 | /stornext/snfs160/next-gen/
460 | /stornext/snfs160/next-gen/
461 | /stornext/snfs160/next-gen/
462 | /stornext/snfs160/next-gen/
463 | /stornext/snfs160/next-gen/
464 | /stornext/snfs160/next-gen/
465 | /stornext/snfs160/next-gen/
466 | /stornext/snfs160/next-gen/
467 | /stornext/snfs160/next-gen/
468 | /stornext/snfs160/next-gen/
469 | /stornext/snfs160/next-gen/
470 | /stornext/snfs160/next-gen/
471 | /stornext/snfs160/next-gen/
472 | /stornext/snfs160/next-gen/
473 | /stornext/snfs160/next-gen/
474 | /stornext/snfs160/next-gen/
475 | /stornext/snfs160/next-gen/
476 | /stornext/snfs160/next-gen/
477 | /stornext/snfs160/next-gen/
478 | /stornext/snfs160/next-gen/
479 | /stornext/snfs160/next-gen/
480 | /stornext/snfs160/next-gen/
481 | /stornext/snfs160/next-gen/
482 | /stornext/snfs160/next-gen/
483 | /stornext/snfs160/next-gen/
484 | /stornext/snfs160/next-gen/
485 | /stornext/snfs160/next-gen/
486 | /stornext/snfs160/next-gen/
487 | /stornext/snfs160/next-gen/
488 | /stornext/snfs160/next-gen/
489 | /stornext/snfs160/next-gen/
490 | /stornext/snfs160/next-gen/
491 | /stornext/snfs160/next-gen/
492 | /stornext/snfs160/next-gen/
493 | /stornext/snfs160/next-gen/
494 | /stornext/snfs160/next-gen/
495 | /stornext/snfs160/next-gen/
496 | /stornext/snfs160/next-gen/
497 | /stornext/snfs160/next-gen/
498 | /stornext/snfs160/next-gen/
499 | /stornext/snfs160/next-gen/
500 | /stornext/snfs160/next-gen/
501 | /stornext/snfs160/next-gen/
502 | /stornext/snfs160/next-gen/
503 | /stornext/snfs160/next-gen/
504 | /stornext/snfs160/next-gen/
505 | /stornext/snfs160/next-gen/
506 | /stornext/snfs160/next-gen/
507 | /stornext/snfs160/next-gen/
508 | /stornext/snfs160/next-gen/
509 | /stornext/snfs160/next-gen/
510 | /stornext/snfs160/next-gen/
511 | /stornext/snfs160/next-gen/
512 | /stornext/snfs160/next-gen/
513 | /stornext/snfs160/next-gen/
514 | /stornext/snfs160/next-gen/
515 | /stornext/snfs160/next-gen/
516 | /stornext/snfs160/next-gen/
517 | /stornext/snfs160/next-gen/
518 | /stornext/snfs160/next-gen/
519 | /stornext/snfs160/next-gen/
520 | /stornext/snfs160/next-gen/
521 | /stornext/snfs160/next-gen/
522 | /stornext/snfs160/next-gen/
523 | /stornext/snfs160/next-gen/
524 | /stornext/snfs160/next-gen/
525 | /stornext/snfs160/next-gen/
526 | /stornext/snfs160/next-gen/
527 | /stornext/snfs160/next-gen/
528 | /stornext/snfs160/next-gen/
529 | /stornext/snfs160/next-gen/
530 | /stornext/snfs160/next-gen/
531 | /stornext/snfs160/next-gen/
532 | /stornext/snfs160/next-gen/
533 | /stornext/snfs160/next-gen/
534 | /stornext/snfs160/next-gen/
535 | /stornext/snfs160/next-gen/
536 | /stornext/snfs160/next-gen/
537 | /stornext/snfs160/next-gen/
538 | /stornext/snfs160/next-gen/
539 | /stornext/snfs160/next-gen/
540 | /stornext/snfs160/next-gen/
541 | /stornext/snfs160/next-gen/
542 | /stornext/snfs160/next-gen/
543 | /stornext/snfs160/next-gen/
544 | /stornext/snfs160/next-gen/
545 | /stornext/snfs160/next-gen/
546 | /stornext/snfs160/next-gen/
547 | /stornext/snfs160/next-gen/
548 | /stornext/snfs160/next-gen/
549 | /stornext/snfs160/next-gen/
550 | /stornext/snfs160/next-gen/
551 | /stornext/snfs160/next-gen/
552 | /stornext/snfs160/next-gen/
553 | /stornext/snfs160/next-gen/
554 | /stornext/snfs160/next-gen/
555 | /stornext/snfs160/next-gen/
556 | /stornext/snfs160/next-gen/
557 | /stornext/snfs160/next-gen/
558 | /stornext/snfs160/next-gen/
559 | /stornext/snfs160/next-gen/
560 | /stornext/snfs160/next-gen/
561 | /stornext/snfs160/next-gen/
562 | /stornext/snfs160/next-gen/
563 | /stornext/snfs160/next-gen/
564 | /stornext/snfs160/next-gen/
565 | /stornext/snfs160/next-gen/
566 | /stornext/snfs160/next-gen/
567 | /stornext/snfs160/next-gen/
568 | /stornext/snfs160/next-gen/
569 | /stornext/snfs160/next-gen/
570 | /stornext/snfs160/next-gen/
571 | /stornext/snfs160/next-gen/
572 | /stornext/snfs160/next-gen/
573 | /stornext/snfs160/next-gen/
574 | /stornext/snfs160/next-gen/
575 | /stornext/snfs160/next-gen/
576 | /stornext/snfs160/next-gen/
577 | /stornext/snfs160/next-gen/
578 | /stornext/snfs160/next-gen/
579 | /stornext/snfs160/next-gen/
580 | /stornext/snfs160/next-gen/
581 | /stornext/snfs160/next-gen/
582 | /stornext/snfs160/next-gen/
583 | /stornext/snfs160/next-gen/
584 | /stornext/snfs160/next-gen/
585 | /stornext/snfs160/next-gen/
586 | /stornext/snfs160/next-gen/
587 | /stornext/snfs160/next-gen/
588 | /stornext/snfs160/next-gen/
589 | /stornext/snfs160/next-gen/
590 | /stornext/snfs160/next-gen/
591 | /stornext/snfs160/next-gen/
592 | /stornext/snfs160/next-gen/
593 | /stornext/snfs160/next-gen/
594 | /stornext/snfs160/next-gen/
595 | /stornext/snfs160/next-gen/
596 | /stornext/snfs160/next-gen/
597 | /stornext/snfs160/next-gen/
598 | /stornext/snfs160/next-gen/
599 | /stornext/snfs160/next-gen/
600 | /stornext/snfs160/next-gen/
601 | /stornext/snfs160/next-gen/
602 | /stornext/snfs160/next-gen/
603 | /stornext/snfs160/next-gen/
604 | /stornext/snfs160/next-gen/
605 | /stornext/snfs160/next-gen/
606 | /stornext/snfs160/next-gen/
607 | /stornext/snfs160/next-gen/
608 | /stornext/snfs160/next-gen/
609 | /stornext/snfs160/next-gen/
610 | /stornext/snfs160/next-gen/
611 | /stornext/snfs160/next-gen/
612 | /stornext/snfs160/next-gen/
613 | /stornext/snfs160/next-gen/
614 | /stornext/snfs160/next-gen/
615 | /stornext/snfs160/next-gen/
616 | /stornext/snfs160/next-gen/
617 | /stornext/snfs160/next-gen/
618 | /stornext/snfs160/next-gen/
619 | /stornext/snfs160/next-gen/
620 | /stornext/snfs160/next-gen/
621 | /stornext/snfs160/next-gen/
622 | /stornext/snfs160/next-gen/
623 | /stornext/snfs160/next-gen/
624 | /stornext/snfs160/next-gen/
625 | /stornext/snfs160/next-gen/
626 | /stornext/snfs160/next-gen/
627 | /stornext/snfs160/next-gen/
628 | /stornext/snfs160/next-gen/
629 | /stornext/snfs160/next-gen/
630 | /stornext/snfs160/next-gen/
631 | /stornext/snfs160/next-gen/
632 | /stornext/snfs160/next-gen/
633 | /stornext/snfs160/next-gen/
634 | /stornext/snfs160/next-gen/
635 | /stornext/snfs160/next-gen/
636 | /stornext/snfs160/next-gen/
637 | /stornext/snfs160/next-gen/
638 | /stornext/snfs160/next-gen/
639 | /stornext/snfs160/next-gen/
640 | /stornext/snfs160/next-gen/
641 | /stornext/snfs160/next-gen/
642 | /stornext/snfs160/next-gen/
643 | /stornext/snfs160/next-gen/
644 | /stornext/snfs160/next-gen/
645 | /stornext/snfs160/next-gen/
646 | /stornext/snfs160/next-gen/
647 | /stornext/snfs160/next-gen/
648 | /stornext/snfs160/next-gen/
649 | /stornext/snfs160/next-gen/
650 | /stornext/snfs160/next-gen/
651 | /stornext/snfs160/next-gen/
652 | /stornext/snfs160/next-gen/
653 | /stornext/snfs160/next-gen/
654 | /stornext/snfs160/next-gen/
655 | /stornext/snfs160/next-gen/
656 | /stornext/snfs160/next-gen/
657 | /stornext/snfs160/next-gen/
658 | /stornext/snfs160/next-gen/
659 | /stornext/snfs160/next-gen/
660 | /stornext/snfs160/next-gen/
661 | /stornext/snfs160/next-gen/
662 | /stornext/snfs160/next-gen/
663 | /stornext/snfs160/next-gen/
664 | /stornext/snfs160/next-gen/
665 | /stornext/snfs160/next-gen/
666 | /stornext/snfs160/next-gen/
667 | /stornext/snfs160/next-gen/
668 | /stornext/snfs160/next-gen/
669 | /stornext/snfs160/next-gen/
670 | /stornext/snfs160/next-gen/
671 | /stornext/snfs160/next-gen/
672 | /stornext/snfs160/next-gen/
673 | /stornext/snfs160/next-gen/
674 | /stornext/snfs160/next-gen/
675 | /stornext/snfs160/next-gen/
676 | /stornext/snfs160/next-gen/
677 | /stornext/snfs160/next-gen/
678 | /stornext/snfs160/next-gen/
679 | /stornext/snfs160/next-gen/
680 | /stornext/snfs160/next-gen/
681 | /stornext/snfs160/next-gen/
682 | /stornext/snfs160/next-gen/
683 | /stornext/snfs160/next-gen/
684 | /stornext/snfs160/next-gen/
685 | /stornext/snfs160/next-gen/
686 | /stornext/snfs160/next-gen/
687 | /stornext/snfs160/next-gen/
688 | /stornext/snfs160/next-gen/
689 | /stornext/snfs160/next-gen/
690 | /stornext/snfs160/next-gen/
691 | /stornext/snfs160/next-gen/
692 | /stornext/snfs160/next-gen/
693 | /stornext/snfs160/next-gen/
694 | /stornext/snfs160/next-gen/
695 | /stornext/snfs160/next-gen/
696 | /stornext/snfs160/next-gen/
697 | /stornext/snfs160/next-gen/
698 | /stornext/snfs160/next-gen/
699 | /stornext/snfs160/next-gen/
700 | /stornext/snfs160/next-gen/
701 | /stornext/snfs160/next-gen/
702 | /stornext/snfs160/next-gen/
703 | /stornext/snfs160/next-gen/
704 | /stornext/snfs160/next-gen/
705 | /stornext/snfs160/next-gen/
706 | /stornext/snfs160/next-gen/
707 | /stornext/snfs160/next-gen/
708 | /stornext/snfs160/next-gen/
709 | /stornext/snfs160/next-gen/
710 | /stornext/snfs160/next-gen/
711 | /stornext/snfs160/next-gen/
712 | /stornext/snfs160/next-gen/
713 | /stornext/snfs160/next-gen/
714 | /stornext/snfs160/next-gen/
715 | /stornext/snfs160/next-gen/
716 | /stornext/snfs160/next-gen/
717 | /stornext/snfs160/next-gen/
718 | /stornext/snfs160/next-gen/
719 | /stornext/snfs160/next-gen/
720 | /stornext/snfs160/next-gen/
721 | /stornext/snfs160/next-gen/
722 | /stornext/snfs160/next-gen/
723 | /stornext/snfs160/next-gen/
724 | /stornext/snfs160/next-gen/
725 | /stornext/snfs160/next-gen/
726 | /stornext/snfs160/next-gen/
727 | /stornext/snfs160/next-gen/
728 | /stornext/snfs160/next-gen/
729 | /stornext/snfs160/next-gen/
730 | /stornext/snfs160/next-gen/
731 | /stornext/snfs160/next-gen/
732 | /stornext/snfs160/next-gen/
733 | /stornext/snfs160/next-gen/
734 | /stornext/snfs160/next-gen/
735 | /stornext/snfs160/next-gen/
736 | /stornext/snfs160/next-gen/
737 | /stornext/snfs160/next-gen/
738 | /stornext/snfs160/next-gen/
739 | /stornext/snfs160/next-gen/
740 | /stornext/snfs160/next-gen/
741 | /stornext/snfs160/next-gen/
742 | /stornext/snfs160/next-gen/
743 | /stornext/snfs160/next-gen/
744 | /stornext/snfs160/next-gen/
745 | /stornext/snfs160/next-gen/
746 | /stornext/snfs160/next-gen/
747 | /stornext/snfs160/next-gen/
748 | /stornext/snfs160/next-gen/
749 | /stornext/snfs160/next-gen/
750 | /stornext/snfs160/next-gen/
751 | /stornext/snfs160/next-gen/
752 | /stornext/snfs160/next-gen/
753 | /stornext/snfs160/next-gen/
754 | /stornext/snfs160/next-gen/
755 | /stornext/snfs160/next-gen/
756 | /stornext/snfs160/next-gen/
757 | /stornext/snfs160/next-gen/
758 | /stornext/snfs160/next-gen/
759 | /stornext/snfs160/next-gen/
760 | /stornext/snfs160/next-gen/
761 | /stornext/snfs160/next-gen/
762 | /stornext/snfs160/next-gen/
763 | /stornext/snfs160/next-gen/
764 | /stornext/snfs160/next-gen/
765 | /stornext/snfs160/next-gen/
766 | /stornext/snfs160/next-gen/
767 | /stornext/snfs160/next-gen/
768 | /stornext/snfs160/next-gen/
769 | /stornext/snfs160/next-gen/
770 | /stornext/snfs160/next-gen/
771 | /stornext/snfs160/next-gen/
772 | /stornext/snfs160/next-gen/
773 | /stornext/snfs160/next-gen/
774 | /stornext/snfs160/next-gen/
775 | /stornext/snfs160/next-gen/
776 | /stornext/snfs160/next-gen/
777 | /stornext/snfs160/next-gen/
778 | /stornext/snfs160/next-gen/
779 | /stornext/snfs160/next-gen/
780 | /stornext/snfs160/next-gen/
781 | /stornext/snfs160/next-gen/
782 | /stornext/snfs160/next-gen/
783 | /stornext/snfs160/next-gen/
784 | /stornext/snfs160/next-gen/
785 | /stornext/snfs160/next-gen/
786 | /stornext/snfs160/next-gen/
787 | /stornext/snfs160/next-gen/
788 | /stornext/snfs160/next-gen/
789 | /stornext/snfs160/next-gen/
790 | /stornext/snfs160/next-gen/
791 | /stornext/snfs160/next-gen/
792 | /stornext/snfs160/next-gen/
793 | /stornext/snfs160/next-gen/
794 | /stornext/snfs160/next-gen/
795 | /stornext/snfs160/next-gen/
796 | /stornext/snfs160/next-gen/
797 | /stornext/snfs160/next-gen/
798 | /stornext/snfs160/next-gen/
799 | /stornext/snfs160/next-gen/
800 | /stornext/snfs160/next-gen/
801 | /stornext/snfs160/next-gen/
802 | /stornext/snfs160/next-gen/
803 | /stornext/snfs160/next-gen/
804 | /stornext/snfs160/next-gen/
805 | /stornext/snfs160/next-gen/
806 | /stornext/snfs160/next-gen/
807 | /stornext/snfs160/next-gen/
808 | /stornext/snfs160/next-gen/
809 | /stornext/snfs160/next-gen/
810 | /stornext/snfs160/next-gen/
811 | /stornext/snfs160/next-gen/
812 | /stornext/snfs160/next-gen/
813 | /stornext/snfs160/next-gen/
814 | /stornext/snfs160/next-gen/
815 | /stornext/snfs160/next-gen/
816 | /stornext/snfs160/next-gen/
817 | /stornext/snfs160/next-gen/
818 | /stornext/snfs160/next-gen/
819 | /stornext/snfs160/next-gen/
820 | /stornext/snfs160/next-gen/
821 | /stornext/snfs160/next-gen/
822 | /stornext/snfs160/next-gen/
823 | /stornext/snfs160/next-gen/
824 | /stornext/snfs160/next-gen/
825 | /stornext/snfs160/next-gen/
826 | /stornext/snfs160/next-gen/
827 | /stornext/snfs160/next-gen/
828 | /stornext/snfs160/next-gen/
829 | /stornext/snfs160/next-gen/
830 | /stornext/snfs160/next-gen/
831 | /stornext/snfs160/next-gen/
832 | /stornext/snfs160/next-gen/
833 | /stornext/snfs160/next-gen/
834 | /stornext/snfs160/next-gen/
835 | /stornext/snfs160/next-gen/
836 | /stornext/snfs160/next-gen/
837 | /stornext/snfs160/next-gen/
838 | /stornext/snfs160/next-gen/
839 | /stornext/snfs160/next-gen/
840 | /stornext/snfs160/next-gen/
841 | /stornext/snfs160/next-gen/
842 | /stornext/snfs160/next-gen/
843 | /stornext/snfs160/next-gen/
844 | /stornext/snfs160/next-gen/
845 | /stornext/snfs160/next-gen/
846 | /stornext/snfs160/next-gen/
847 | /stornext/snfs160/next-gen/
848 | /stornext/snfs160/next-gen/
849 | /stornext/snfs160/next-gen/
850 | /stornext/snfs160/next-gen/
851 | /stornext/snfs160/next-gen/
852 | /stornext/snfs160/next-gen/
853 | /stornext/snfs160/next-gen/
854 | /stornext/snfs160/next-gen/
855 | /stornext/snfs160/next-gen/
856 | /stornext/snfs160/next-gen/
857 | /stornext/snfs160/next-gen/
858 | /stornext/snfs160/next-gen/
859 | /stornext/snfs160/next-gen/
860 | /stornext/snfs160/next-gen/
861 | /stornext/snfs160/next-gen/
862 | /stornext/snfs160/next-gen/
863 | /stornext/snfs160/next-gen/
864 | /stornext/snfs160/next-gen/
865 | /stornext/snfs160/next-gen/
866 | /stornext/snfs160/next-gen/
867 | /stornext/snfs160/next-gen/
868 | /stornext/snfs160/next-gen/
869 | /stornext/snfs160/next-gen/
870 | /stornext/snfs160/next-gen/
871 | /stornext/snfs160/next-gen/
872 | /stornext/snfs160/next-gen/
873 | /stornext/snfs160/next-gen/
874 | /stornext/snfs160/next-gen/
875 | /stornext/snfs160/next-gen/
876 | /stornext/snfs160/next-gen/
877 | /stornext/snfs160/next-gen/
878 | /stornext/snfs160/next-gen/
879 | /stornext/snfs160/next-gen/
880 | /stornext/snfs160/next-gen/
881 | /stornext/snfs160/next-gen/
882 | /stornext/snfs160/next-gen/
883 | /stornext/snfs160/next-gen/
884 | /stornext/snfs160/next-gen/
885 | /stornext/snfs160/next-gen/
886 | /stornext/snfs160/next-gen/
887 | /stornext/snfs160/next-gen/
888 | /stornext/snfs160/next-gen/
889 | /stornext/snfs160/next-gen/
890 | /stornext/snfs160/next-gen/
891 | /stornext/snfs160/next-gen/
892 | /stornext/snfs160/next-gen/
893 | /stornext/snfs160/next-gen/
894 | /stornext/snfs160/next-gen/
895 | /stornext/snfs160/next-gen/
896 | /stornext/snfs160/next-gen/
897 | /stornext/snfs160/next-gen/
898 | /stornext/snfs160/next-gen/
899 | /stornext/snfs160/next-gen/
900 | /stornext/snfs160/next-gen/
901 | /stornext/snfs160/next-gen/
902 | /stornext/snfs160/next-gen/
903 | /stornext/snfs160/next-gen/
904 | /stornext/snfs160/next-gen/
905 | /stornext/snfs160/next-gen/
906 | /stornext/snfs160/next-gen/
907 | /stornext/snfs160/next-gen/
908 | /stornext/snfs160/next-gen/
909 | /stornext/snfs160/next-gen/
910 | /stornext/snfs160/next-gen/
911 | /stornext/snfs160/next-gen/
912 | /stornext/snfs160/next-gen/
913 | /stornext/snfs160/next-gen/
914 | /stornext/snfs160/next-gen/
915 | /stornext/snfs160/next-gen/
916 | /stornext/snfs160/next-gen/
917 | /stornext/snfs160/next-gen/
918 | /stornext/snfs160/next-gen/
919 | /stornext/snfs160/next-gen/
920 | /stornext/snfs160/next-gen/
921 | /stornext/snfs160/next-gen/
922 | /stornext/snfs160/next-gen/
923 | /stornext/snfs160/next-gen/
924 | /stornext/snfs160/next-gen/
925 | /stornext/snfs160/next-gen/
926 | /stornext/snfs160/next-gen/
927 | /stornext/snfs160/next-gen/
928 | /stornext/snfs160/next-gen/
929 | /stornext/snfs160/next-gen/
930 | /stornext/snfs160/next-gen/
931 | /stornext/snfs160/next-gen/
932 | /stornext/snfs160/next-gen/
933 | /stornext/snfs160/next-gen/
934 | /stornext/snfs160/next-gen/
935 | /stornext/snfs160/next-gen/
936 | /stornext/snfs160/next-gen/
937 | /stornext/snfs160/next-gen/
938 | /stornext/snfs160/next-gen/
939 | /stornext/snfs160/next-gen/
940 | /stornext/snfs160/next-gen/
941 | /stornext/snfs160/next-gen/
942 | /stornext/snfs160/next-gen/
943 | /stornext/snfs160/next-gen/
944 | /stornext/snfs160/next-gen/
945 | /stornext/snfs160/next-gen/
946 | /stornext/snfs160/next-gen/
947 | /stornext/snfs160/next-gen/
948 | /stornext/snfs160/next-gen/
949 | /stornext/snfs160/next-gen/
950 | /stornext/snfs160/next-gen/
951 | /stornext/snfs160/next-gen/
952 | /stornext/snfs160/next-gen/
953 | /stornext/snfs160/next-gen/
954 | /stornext/snfs160/next-gen/
955 | /stornext/snfs160/next-gen/
956 | /stornext/snfs160/next-gen/
957 | /stornext/snfs160/next-gen/
958 | /stornext/snfs160/next-gen/
959 | /stornext/snfs160/next-gen/
960 | /stornext/snfs160/next-gen/
961 | /stornext/snfs160/next-gen/
962 | /stornext/snfs160/next-gen/
963 | /stornext/snfs160/next-gen/
964 | /stornext/snfs160/next-gen/
965 | /stornext/snfs160/next-gen/
966 | /stornext/snfs160/next-gen/
967 | /stornext/snfs160/next-gen/
968 | /stornext/snfs160/next-gen/
969 | /stornext/snfs160/next-gen/
970 | /stornext/snfs160/next-gen/
971 | /stornext/snfs160/next-gen/
972 | /stornext/snfs160/next-gen/
973 | /stornext/snfs160/next-gen/
974 | /stornext/snfs160/next-gen/
975 | /stornext/snfs160/next-gen/
976 | /stornext/snfs160/next-gen/
977 | /stornext/snfs160/next-gen/
978 | /stornext/snfs160/next-gen/
979 | /stornext/snfs160/next-gen/
980 | /stornext/snfs160/next-gen/
981 | /stornext/snfs160/next-gen/
982 | /stornext/snfs160/next-gen/
983 | /stornext/snfs160/next-gen/
984 | /stornext/snfs160/next-gen/
985 | /stornext/snfs160/next-gen/
986 | /stornext/snfs160/next-gen/
987 | /stornext/snfs160/next-gen/
988 | /stornext/snfs160/next-gen/
989 | /stornext/snfs160/next-gen/
990 | /stornext/snfs160/next-gen/
991 | /stornext/snfs160/next-gen/
992 | /stornext/snfs160/next-gen/
993 | /stornext/snfs160/next-gen/
994 | /stornext/snfs160/next-gen/
995 | /stornext/snfs160/next-gen/
996 | /stornext/snfs160/next-gen/
997 | /stornext/snfs160/next-gen/
998 | /stornext/snfs160/next-gen/
999 | /stornext/snfs160/next-gen/
1000 | /stornext/snfs160/next-gen/
1001 | /stornext/snfs160/next-gen/
1002 | /stornext/snfs160/next-gen/
1003 | /stornext/snfs160/next-gen/
1004 | /stornext/snfs160/next-gen/
1005 | /stornext/snfs160/next-gen/
1006 | /stornext/snfs160/next-gen/
1007 | /stornext/snfs160/next-gen/
1008 | /stornext/snfs160/next-gen/
1009 | /stornext/snfs160/next-gen/
1010 | /stornext/snfs160/next-gen/
1011 | /stornext/snfs160/next-gen/
1012 | /stornext/snfs160/next-gen/
1013 | /stornext/snfs160/next-gen/
1014 | /stornext/snfs160/next-gen/
1015 | /stornext/snfs160/next-gen/
1016 | /stornext/snfs160/next-gen/
1017 | /stornext/snfs160/next-gen/
1018 | /stornext/snfs160/next-gen/
1019 | /stornext/snfs160/next-gen/
1020 | /stornext/snfs160/next-gen/
1021 | /stornext/snfs160/next-gen/
1022 | /stornext/snfs160/next-gen/
1023 | /stornext/snfs160/next-gen/
1024 | /stornext/snfs160/next-gen/
1025 | /stornext/snfs160/next-gen/
1026 | /stornext/snfs160/next-gen/
1027 | /stornext/snfs160/next-gen/
1028 | /stornext/snfs160/next-gen/
1029 | /stornext/snfs160/next-gen/
1030 | /stornext/snfs160/next-gen/
1031 | /stornext/snfs160/next-gen/
1032 | /stornext/snfs160/next-gen/
1033 | /stornext/snfs160/next-gen/
1034 | /stornext/snfs160/next-gen/
1035 | /stornext/snfs160/next-gen/
1036 | /stornext/snfs160/next-gen/
1037 | /stornext/snfs160/next-gen/
1038 | /stornext/snfs160/next-gen/
1039 | /stornext/snfs160/next-gen/
1040 | /stornext/snfs160/next-gen/
1041 | /stornext/snfs160/next-gen/
1042 | /stornext/snfs160/next-gen/
1043 | /stornext/snfs160/next-gen/
1044 | /stornext/snfs160/next-gen/
1045 | /stornext/snfs160/next-gen/
1046 | /stornext/snfs160/next-gen/
1047 | /stornext/snfs160/next-gen/
1048 | /stornext/snfs160/next-gen/
1049 | /stornext/snfs160/next-gen/
1050 | /stornext/snfs160/next-gen/
1051 | /stornext/snfs160/next-gen/
1052 | /stornext/snfs160/next-gen/
1053 | /stornext/snfs160/next-gen/
1054 | /stornext/snfs160/next-gen/
1055 | /stornext/snfs160/next-gen/
1056 | /stornext/snfs160/next-gen/
1057 | /stornext/snfs160/next-gen/
1058 | /stornext/snfs160/next-gen/
1059 | /stornext/snfs160/next-gen/
1060 | /stornext/snfs160/next-gen/
1061 | /stornext/snfs160/next-gen/
1062 | /stornext/snfs160/next-gen/
1063 | /stornext/snfs160/next-gen/
1064 | /stornext/snfs160/next-gen/
1065 | /stornext/snfs160/next-gen/
1066 | /stornext/snfs160/next-gen/
1067 | /stornext/snfs160/next-gen/
1068 | /stornext/snfs160/next-gen/
1069 | /stornext/snfs160/next-gen/
1070 | /stornext/snfs160/next-gen/
1071 | /stornext/snfs160/next-gen/
1072 | /stornext/snfs160/next-gen/
1073 | /stornext/snfs160/next-gen/
1074 | /stornext/snfs160/next-gen/
1075 | /stornext/snfs160/next-gen/
1076 | /stornext/snfs160/next-gen/
1077 | /stornext/snfs160/next-gen/
1078 | /stornext/snfs160/next-gen/
1079 | /stornext/snfs160/next-gen/
1080 | /stornext/snfs160/next-gen/
1081 | /stornext/snfs160/next-gen/
1082 | /stornext/snfs160/next-gen/
1083 | /stornext/snfs160/next-gen/
1084 | /stornext/snfs160/next-gen/
1085 | /stornext/snfs160/next-gen/
1086 | /stornext/snfs160/next-gen/
1087 | /stornext/snfs160/next-gen/
1088 | /stornext/snfs160/next-gen/
1089 | /stornext/snfs160/next-gen/
1090 | /stornext/snfs160/next-gen/
1091 | /stornext/snfs160/next-gen/
1092 | /stornext/snfs160/next-gen/
1093 | /stornext/snfs160/next-gen/
1094 | /stornext/snfs160/next-gen/
1095 | /stornext/snfs160/next-gen/
1096 | /stornext/snfs160/next-gen/
1097 | /stornext/snfs160/next-gen/
1098 | /stornext/snfs160/next-gen/
1099 | /stornext/snfs160/next-gen/
1100 | /stornext/snfs160/next-gen/
1101 | /stornext/snfs160/next-gen/
1102 | /stornext/snfs160/next-gen/
1103 | /stornext/snfs160/next-gen/
1104 | /stornext/snfs160/next-gen/
1105 | /stornext/snfs160/next-gen/
1106 | /stornext/snfs160/next-gen/
1107 | /stornext/snfs160/next-gen/
1108 | /stornext/snfs160/next-gen/
1109 | /stornext/snfs160/next-gen/
1110 | /stornext/snfs160/next-gen/
1111 | /stornext/snfs160/next-gen/
1112 | /stornext/snfs160/next-gen/
1113 | /stornext/snfs160/next-gen/
1114 | /stornext/snfs160/next-gen/
1115 | /stornext/snfs160/next-gen/
1116 | /stornext/snfs160/next-gen/
1117 | /stornext/snfs160/next-gen/
1118 | /stornext/snfs160/next-gen/
1119 | /stornext/snfs160/next-gen/
1120 | /stornext/snfs160/next-gen/
1121 | /stornext/snfs160/next-gen/
1122 | /stornext/snfs160/next-gen/
1123 | /stornext/snfs160/next-gen/
1124 | /stornext/snfs160/next-gen/
1125 | /stornext/snfs160/next-gen/
1126 | /stornext/snfs160/next-gen/
1127 | /stornext/snfs160/next-gen/
1128 | /stornext/snfs160/next-gen/
1129 | /stornext/snfs160/next-gen/
1130 | /stornext/snfs160/next-gen/
1131 | /stornext/snfs160/next-gen/
1132 | /stornext/snfs160/next-gen/
1133 | /stornext/snfs160/next-gen/
1134 | /stornext/snfs160/next-gen/
1135 | /stornext/snfs160/next-gen/
1136 | /stornext/snfs160/next-gen/
1137 | /stornext/snfs160/next-gen/
1138 | /stornext/snfs160/next-gen/
1139 | /stornext/snfs160/next-gen/
1140 | /stornext/snfs160/next-gen/
1141 | /stornext/snfs160/next-gen/
1142 | /stornext/snfs160/next-gen/
1143 | /stornext/snfs160/next-gen/
1144 | /stornext/snfs160/next-gen/
1145 | /stornext/snfs160/next-gen/
1146 | /stornext/snfs160/next-gen/
1147 | /stornext/snfs160/next-gen/
1148 | /stornext/snfs160/next-gen/
1149 | /stornext/snfs160/next-gen/
1150 | /stornext/snfs160/next-gen/
1151 | /stornext/snfs160/next-gen/
1152 | /stornext/snfs160/next-gen/
1153 | /stornext/snfs160/next-gen/
1154 | /stornext/snfs160/next-gen/
1155 | /stornext/snfs160/next-gen/
1156 | /stornext/snfs160/next-gen/
1157 | /stornext/snfs160/next-gen/
1158 | /stornext/snfs160/next-gen/
1159 | /stornext/snfs160/next-gen/
1160 | /stornext/snfs160/next-gen/
1161 | /stornext/snfs160/next-gen/
1162 | /stornext/snfs160/next-gen/
1163 | /stornext/snfs160/next-gen/
1164 | /stornext/snfs160/next-gen/
1165 | /stornext/snfs160/next-gen/
1166 | /stornext/snfs160/next-gen/
1167 | /stornext/snfs160/next-gen/
1168 | /stornext/snfs160/next-gen/
1169 | /stornext/snfs160/next-gen/
1170 | /stornext/snfs160/next-gen/
1171 | /stornext/snfs160/next-gen/
1172 | /stornext/snfs160/next-gen/
1173 | /stornext/snfs160/next-gen/
1174 | /stornext/snfs160/next-gen/
1175 | /stornext/snfs160/next-gen/
1176 | /stornext/snfs160/next-gen/
1177 | /stornext/snfs160/next-gen/
1178 | /stornext/snfs160/next-gen/
1179 | /stornext/snfs160/next-gen/
1180 | /stornext/snfs160/next-gen/
1181 | /stornext/snfs160/next-gen/
1182 | /stornext/snfs160/next-gen/
1183 | /stornext/snfs160/next-gen/
1184 | /stornext/snfs160/next-gen/
1185 | /stornext/snfs160/next-gen/
1186 | /stornext/snfs160/next-gen/
1187 | /stornext/snfs160/next-gen/
1188 | /stornext/snfs160/next-gen/
1189 | /stornext/snfs160/next-gen/
1190 | /stornext/snfs160/next-gen/
1191 | /stornext/snfs160/next-gen/
1192 | /stornext/snfs160/next-gen/
1193 | /stornext/snfs160/next-gen/
1194 | /stornext/snfs160/next-gen/
1195 | /stornext/snfs160/next-gen/
1196 | /stornext/snfs160/next-gen/
1197 | /stornext/snfs160/next-gen/
1198 | /stornext/snfs160/next-gen/
1199 | /stornext/snfs160/next-gen/
1200 | /stornext/snfs160/next-gen/
1201 | /stornext/snfs160/next-gen/
1202 | /stornext/snfs160/next-gen/
1203 | /stornext/snfs160/next-gen/
1204 | /stornext/snfs160/next-gen/
1205 | /stornext/snfs160/next-gen/
1206 | /stornext/snfs160/next-gen/
1207 | /stornext/snfs160/next-gen/
1208 | /stornext/snfs160/next-gen/
1209 | /stornext/snfs160/next-gen/
1210 | /stornext/snfs160/next-gen/
1211 | /stornext/snfs160/next-gen/
1212 | /stornext/snfs160/next-gen/
1213 | /stornext/snfs160/next-gen/
1214 | /stornext/snfs160/next-gen/
1215 | /stornext/snfs160/next-gen/
1216 | /stornext/snfs160/next-gen/
1217 | /stornext/snfs160/next-gen/
1218 | /stornext/snfs160/next-gen/
1219 | /stornext/snfs160/next-gen/
1220 | /stornext/snfs160/next-gen/
1221 | /stornext/snfs160/next-gen/
1222 | /stornext/snfs160/next-gen/
1223 | /stornext/snfs160/next-gen/
1224 | /stornext/snfs160/next-gen/
1225 | /stornext/snfs160/next-gen/
1226 | /stornext/snfs160/next-gen/
1227 | /stornext/snfs160/next-gen/
1228 | /stornext/snfs160/next-gen/
1229 | /stornext/snfs160/next-gen/
1230 | /stornext/snfs160/next-gen/
1231 | /stornext/snfs160/next-gen/
1232 | /stornext/snfs160/next-gen/
1233 | /stornext/snfs160/next-gen/
1234 | /stornext/snfs160/next-gen/
1235 | /stornext/snfs160/next-gen/
1236 | /stornext/snfs160/next-gen/
1237 | /stornext/snfs160/next-gen/
1238 | /stornext/snfs160/next-gen/
1239 | /stornext/snfs160/next-gen/
1240 | /stornext/snfs160/next-gen/
1241 | /stornext/snfs160/next-gen/
1242 | /stornext/snfs160/next-gen/
1243 | /stornext/snfs160/next-gen/
1244 | /stornext/snfs160/next-gen/
1245 | /stornext/snfs160/next-gen/
1246 | /stornext/snfs160/next-gen/
1247 | /stornext/snfs160/next-gen/
1248 | /stornext/snfs160/next-gen/
1249 | /stornext/snfs160/next-gen/
1250 | /stornext/snfs160/next-gen/
1251 | /stornext/snfs160/next-gen/
1252 | /stornext/snfs160/next-gen/
1253 | /stornext/snfs160/next-gen/
1254 | /stornext/snfs160/next-gen/
1255 | /stornext/snfs160/next-gen/
1256 | /stornext/snfs160/next-gen/
1257 | /stornext/snfs160/next-gen/
1258 | /stornext/snfs160/next-gen/
1259 | /stornext/snfs160/next-gen/
1260 | /stornext/snfs160/next-gen/
1261 | /stornext/snfs160/next-gen/
1262 | /stornext/snfs160/next-gen/
1263 | /stornext/snfs160/next-gen/
1264 | /stornext/snfs160/next-gen/
1265 | /stornext/snfs160/next-gen/
1266 | /stornext/snfs160/next-gen/
1267 | /stornext/snfs160/next-gen/
1268 | /stornext/snfs160/next-gen/
1269 | /stornext/snfs160/next-gen/
1270 | /stornext/snfs160/next-gen/
1271 | /stornext/snfs160/next-gen/
1272 | /stornext/snfs160/next-gen/
1273 | /stornext/snfs160/next-gen/
1274 | /stornext/snfs160/next-gen/
1275 | /stornext/snfs160/next-gen/
1276 | /stornext/snfs160/next-gen/
1277 | /stornext/snfs160/next-gen/
1278 | /stornext/snfs160/next-gen/
1279 | /stornext/snfs160/next-gen/
1280 | /stornext/snfs160/next-gen/
1281 | /stornext/snfs160/next-gen/
1282 | /stornext/snfs160/next-gen/
1283 | /stornext/snfs160/next-gen/
1284 | /stornext/snfs160/next-gen/
1285 | /stornext/snfs160/next-gen/
1286 | /stornext/snfs160/next-gen/
1287 | /stornext/snfs160/next-gen/
1288 | /stornext/snfs160/next-gen/
1289 | /stornext/snfs160/next-gen/
1290 | /stornext/snfs160/next-gen/
1291 | /stornext/snfs160/next-gen/
1292 | /stornext/snfs160/next-gen/
1293 | /stornext/snfs160/next-gen/
1294 | /stornext/snfs160/next-gen/
1295 | /stornext/snfs160/next-gen/
1296 | /stornext/snfs160/next-gen/
1297 | /stornext/snfs160/next-gen/
1298 | /stornext/snfs160/next-gen/
1299 | /stornext/snfs160/next-gen/
1300 | /stornext/snfs160/next-gen/
1301 | /stornext/snfs160/next-gen/
1302 | /stornext/snfs160/next-gen/
1303 | /stornext/snfs160/next-gen/
1304 | /stornext/snfs160/next-gen/
1305 | /stornext/snfs160/next-gen/
1306 | /stornext/snfs160/next-gen/
1307 | /stornext/snfs160/next-gen/
1308 | /stornext/snfs160/next-gen/
1309 | /stornext/snfs160/next-gen/
1310 | /stornext/snfs160/next-gen/
1311 | /stornext/snfs160/next-gen/
1312 | /stornext/snfs160/next-gen/
1313 | /stornext/snfs160/next-gen/
1314 | /stornext/snfs160/next-gen/
1315 | /stornext/snfs160/next-gen/
1316 | /stornext/snfs160/next-gen/
1317 | /stornext/snfs160/next-gen/
1318 | /stornext/snfs160/next-gen/
1319 | /stornext/snfs160/next-gen/
1320 | /stornext/snfs160/next-gen/
1321 | /stornext/snfs160/next-gen/
1322 | /stornext/snfs160/next-gen/
1323 | /stornext/snfs160/next-gen/
1324 | /stornext/snfs160/next-gen/
1325 | /stornext/snfs160/next-gen/
1326 | /stornext/snfs160/next-gen/
1327 | /stornext/snfs160/next-gen/
1328 | /stornext/snfs160/next-gen/
1329 | /stornext/snfs160/next-gen/
1330 | /stornext/snfs160/next-gen/
1331 | /stornext/snfs160/next-gen/
1332 | /stornext/snfs160/next-gen/
1333 | /stornext/snfs160/next-gen/
1334 | /stornext/snfs160/next-gen/
1335 | /stornext/snfs160/next-gen/
1336 | /stornext/snfs160/next-gen/
1337 | /stornext/snfs160/next-gen/
1338 | /stornext/snfs160/next-gen/
1339 | /stornext/snfs160/next-gen/
1340 | /stornext/snfs160/next-gen/
1341 | /stornext/snfs160/next-gen/
1342 | /stornext/snfs160/next-gen/
1343 | /stornext/snfs160/next-gen/
1344 | /stornext/snfs160/next-gen/
1345 | /stornext/snfs160/next-gen/
1346 | /stornext/snfs160/next-gen/
1347 | /stornext/snfs160/next-gen/
1348 | /stornext/snfs160/next-gen/
1349 | /stornext/snfs160/next-gen/
1350 | /stornext/snfs160/next-gen/
1351 | /stornext/snfs160/next-gen/
1352 | /stornext/snfs160/next-gen/
1353 | /stornext/snfs160/next-gen/
1354 | /stornext/snfs160/next-gen/
1355 | /stornext/snfs160/next-gen/
1356 | /stornext/snfs160/next-gen/
1357 | /stornext/snfs160/next-gen/
1358 | /stornext/snfs160/next-gen/
1359 | /stornext/snfs160/next-gen/
1360 | /stornext/snfs160/next-gen/
1361 | /stornext/snfs160/next-gen/
1362 | /stornext/snfs160/next-gen/
1363 | /stornext/snfs160/next-gen/
1364 | /stornext/snfs160/next-gen/
1365 | /stornext/snfs160/next-gen/
1366 | /stornext/snfs160/next-gen/
1367 | /stornext/snfs160/next-gen/
1368 | /stornext/snfs160/next-gen/
1369 | /stornext/snfs160/next-gen/
1370 | /stornext/snfs160/next-gen/
1371 | /stornext/snfs160/next-gen/
1372 | /stornext/snfs160/next-gen/
1373 | /stornext/snfs160/next-gen/
1374 | /stornext/snfs160/next-gen/
1375 | /stornext/snfs160/next-gen/
1376 | /stornext/snfs160/next-gen/
1377 | /stornext/snfs160/next-gen/
1378 | /stornext/snfs160/next-gen/
1379 | /stornext/snfs160/next-gen/
1380 | /stornext/snfs160/next-gen/
1381 | /stornext/snfs160/next-gen/
1382 | /stornext/snfs160/next-gen/
1383 | /stornext/snfs160/next-gen/
1384 | /stornext/snfs160/next-gen/
1385 | /stornext/snfs160/next-gen/
1386 | /stornext/snfs160/next-gen/
1387 | /stornext/snfs160/next-gen/
1388 | /stornext/snfs160/next-gen/
1389 | /stornext/snfs160/next-gen/
1390 | /stornext/snfs160/next-gen/
1391 | /stornext/snfs160/next-gen/
1392 | /stornext/snfs160/next-gen/
1393 | /stornext/snfs160/next-gen/
1394 | /stornext/snfs160/next-gen/
1395 | /stornext/snfs160/next-gen/
1396 | /stornext/snfs160/next-gen/
1397 | /stornext/snfs160/next-gen/
1398 | /stornext/snfs160/next-gen/
1399 | /stornext/snfs160/next-gen/
1400 | /stornext/snfs160/next-gen/
1401 | /stornext/snfs160/next-gen/
1402 | /stornext/snfs160/next-gen/
1403 | /stornext/snfs160/next-gen/
1404 | /stornext/snfs160/next-gen/
1405 | /stornext/snfs160/next-gen/
1406 | /stornext/snfs160/next-gen/
1407 | /stornext/snfs160/next-gen/
1408 | /stornext/snfs160/next-gen/
1409 | /stornext/snfs160/next-gen/
1410 | /stornext/snfs160/next-gen/
1411 | /stornext/snfs160/next-gen/
1412 | /stornext/snfs160/next-gen/
1413 | /stornext/snfs160/next-gen/
1414 | /stornext/snfs160/next-gen/
1415 | /stornext/snfs160/next-gen/
1416 | /stornext/snfs160/next-gen/
1417 | /stornext/snfs160/next-gen/
1418 | /stornext/snfs160/next-gen/
1419 | /stornext/snfs160/next-gen/
1420 | /stornext/snfs160/next-gen/
1421 | /stornext/snfs160/next-gen/
1422 | /stornext/snfs160/next-gen/
1423 | /stornext/snfs160/next-gen/
1424 | /stornext/snfs160/next-gen/
1425 | /stornext/snfs160/next-gen/
1426 | /stornext/snfs160/next-gen/
1427 | /stornext/snfs160/next-gen/
1428 | /stornext/snfs160/next-gen/
1429 | /stornext/snfs160/next-gen/
1430 | /stornext/snfs160/next-gen/
1431 | /stornext/snfs160/next-gen/
1432 | /stornext/snfs160/next-gen/
1433 | /stornext/snfs160/next-gen/
1434 | /stornext/snfs160/next-gen/
1435 | /stornext/snfs160/next-gen/
1436 | /stornext/snfs160/next-gen/
1437 | /stornext/snfs160/next-gen/
1438 | /stornext/snfs160/next-gen/
1439 | /stornext/snfs160/next-gen/
1440 | /stornext/snfs160/next-gen/
1441 | /stornext/snfs160/next-gen/
1442 | /stornext/snfs160/next-gen/
1443 | /stornext/snfs160/next-gen/
1444 | /stornext/snfs160/next-gen/
1445 | /stornext/snfs160/next-gen/
1446 | /stornext/snfs160/next-gen/
1447 | /stornext/snfs160/next-gen/
1448 | /stornext/snfs160/next-gen/
1449 | /stornext/snfs160/next-gen/
1450 | /stornext/snfs160/next-gen/
1451 | /stornext/snfs160/next-gen/
1452 | /stornext/snfs160/next-gen/
1453 | /stornext/snfs160/next-gen/
1454 | /stornext/snfs160/next-gen/
1455 | /stornext/snfs160/next-gen/
1456 | /stornext/snfs160/next-gen/
1457 | /stornext/snfs160/next-gen/
1458 | /stornext/snfs160/next-gen/
1459 | /stornext/snfs160/next-gen/
1460 | /stornext/snfs160/next-gen/
1461 | /stornext/snfs160/next-gen/
1462 |
--------------------------------------------------------------------------------