task_boiler
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
task_boiler [2022/08/11 21:57] – raju | task_boiler [2023/02/13 23:53] – raju | ||
---|---|---|---|
Line 4: | Line 4: | ||
Start the first heading with " | Start the first heading with " | ||
- | ===== Apply unix commands to all but the first line ===== | + | ===== print hundredths |
- | ==== Situation | + | Let' |
- | Let' | + | |
- | < | + | |
- | % echo -e " | + | |
- | value | + | |
- | 8 | + | |
- | 2 | + | |
- | 6 | + | |
- | 3 | + | |
- | </ | + | |
- | we want to output | + | |
- | < | + | |
- | value | + | |
- | 2 | + | |
- | 3 | + | |
- | 6 | + | |
- | 8 | + | |
- | </ | + | |
- | We can't directly use ' | + | tags | pennies, dollar-cent amounts |
- | < | + | ==== write single numbers ==== |
- | % echo -e " | + | There are two possible ways |
- | 2 | + | |
- | 3 | + | |
- | 6 | + | |
- | 8 | + | |
- | value | + | |
- | </ | + | |
- | ==== Bare bones solution ==== | + | ^ ^ round ^ format ^ |
- | Create a script called ' | + | | output type | float | string | |
- | < | + | | output type | < |
- | # | + | In [1]: |
- | # | + | a = 10.30467 |
- | # body: apply expression to all but the first line. | + | |
- | # Use multiple times in case the header spans more than one line. | + | |
- | # | + | |
- | # Example usage: | + | |
- | # $ echo -e " | + | |
- | # | + | |
- | IFS= read -r header | + | |
- | printf ' | + | |
- | " | + | |
- | </ | + | |
- | Make it executable | + | In [2]: |
- | < | + | type(round(a, |
- | % chmod +x body | + | Out[2]: |
- | </ | + | float |
- | place it somewhere in your PATH (say ~/bin) | + | In [3]: |
- | < | + | type(' |
- | % mv body ~/bin | + | Out[3]: |
- | </ | + | str |
+ | </ | ||
+ | | number of digits after the decimal point | varies | always two | | ||
- | This script will apply any unix command to all but the first line. For example, using it on our example | ||
- | < | ||
- | % echo -e " | ||
- | value | ||
- | 2 | ||
- | 3 | ||
- | 6 | ||
- | 8 | ||
- | </ | ||
- | |||
- | ==== Practical solution ==== | ||
- | I got the above script from https:// | ||
- | |||
- | A more practical approach is to clone that entire repository and add it to your PATH. | ||
- | |||
- | I did it as follows. | ||
- | |||
- | Remove the bare bones script we added in the previous step | ||
- | < | ||
- | % rm ~/bin/body | ||
- | </ | ||
- | |||
- | Clone the repository | ||
- | < | ||
- | % mkdir -p ~/ | ||
- | % cd ~/ | ||
- | |||
- | % git clone git@github.com: | ||
- | Cloning into ' | ||
- | remote: Enumerating objects: 62, done. | ||
- | remote: Counting objects: 100% (62/62), done. | ||
- | remote: Compressing objects: 100% (52/52), done. | ||
- | remote: Total 62 (delta 20), reused 48 (delta 10), pack-reused 0 | ||
- | Receiving objects: 100% (62/62), 18.59 KiB | 9.29 MiB/s, done. | ||
- | Resolving deltas: 100% (20/20), done. | ||
- | </ | ||
- | |||
- | Update the PATH in ~/.bashrc by adding the following lines | ||
- | < | ||
- | # | ||
- | # Add data science utils such as body, header | ||
- | export PATH=~/ | ||
- | # | ||
- | </ | ||
- | |||
- | Open a new bash session and verify that these utilities are correctly picked up. | ||
- | < | ||
- | % which body | ||
- | / | ||
- | |||
- | % which header | ||
- | / | ||
- | </ | ||
- | |||
- | Verify that the utilities are working as expected. | ||
- | < | ||
- | % echo -e " | ||
- | value | ||
- | 2 | ||
- | 3 | ||
- | 6 | ||
- | 8 | ||
- | </ | ||
- | |||
- | ==== Works with any command ==== | ||
- | The beauty of this approach is that you can use it with any unix command (and not just sort). For example, you can grep a value and it will show the header along with the value. | ||
- | < | ||
- | % echo -e " | ||
- | value | ||
- | 8 | ||
- | </ | ||
- | |||
- | ==== How I came across it ==== | ||
- | I came across it while reading the book "Data Science at the Command Line" (2nd Edition) by Jeroen Janssens (https:// |
task_boiler.txt · Last modified: 2024/01/23 22:55 by raju