├── 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 | --------------------------------------------------------------------------------