NLP using Bash jq & Nix
Is this too Nix for you guys or agree it's dope?
https://quackhack-mcblindy.github.io/blog/
https://redd.it/1nxlssd
@r_bash
Is this too Nix for you guys or agree it's dope?
https://quackhack-mcblindy.github.io/blog/
https://redd.it/1nxlssd
@r_bash
How to learn bash noscripts?
I have been really wanting to learn bash noscripts but I’m just not sure where to start. I already know the basics like variables, if, functions. Also this is an example noscript that I want to learn to be able to make it’s just noscript that fzf searches my tmuxifier layouts a remove the one I pick.
https://redd.it/1nxxlce
@r_bash
I have been really wanting to learn bash noscripts but I’m just not sure where to start. I already know the basics like variables, if, functions. Also this is an example noscript that I want to learn to be able to make it’s just noscript that fzf searches my tmuxifier layouts a remove the one I pick.
https://redd.it/1nxxlce
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Desperately need a tutor/HOWTO create automated bash-completion test (for scientific research project)
Hi,
I've created some 700 iterations of a bash-completions noscript for a scientific research project. To date, I've been manually testing, but this is taking FOREVER and is brittle.
I just can't seem to figure out either simulate a TAB keypress in the CLI via Bash nor how people do automated testing for bash-completions, or if it's even possible.
Please, I've been struggling for days and am blocked.
Your assistance can be directly cited in the research project if you want.
https://redd.it/1nydoa8
@r_bash
Hi,
I've created some 700 iterations of a bash-completions noscript for a scientific research project. To date, I've been manually testing, but this is taking FOREVER and is brittle.
I just can't seem to figure out either simulate a TAB keypress in the CLI via Bash nor how people do automated testing for bash-completions, or if it's even possible.
Please, I've been struggling for days and am blocked.
Your assistance can be directly cited in the research project if you want.
https://redd.it/1nydoa8
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
how to process text with quotes and backslashes
I wrote a noscript to turn a .csv file into a list of Powershell commands to add user accounts to a PC.
Let me say right up front that I know very little about the Windows command line.
And also that my noscripting skills are self-taught so please be merciful.
_______________________
Here's the (anonymized) noscript:
#!/bin/sh
## run this noscript with the input file as argument
## requires csvkit
csvcut=/opt/homebrew/bin/csvcut ;
tmpfile=/tmp/laserUsers.txt ;
myDate=$(date '+%Y.%m.%d%k.%M.%S') ;
outputfile=$HOME/Documents/laser-users-add-batch-"$myDate".txt ;
backslash='\' ;
quote='"' ;
: > $tmpfile ;
## extract emails from downloaded .csv file, delete domain name & convert to lowercase
$csvcut -c "Email Address" "$1" | tail -n+2 | sed 's/@soul.com//g' | tr '[:upper:]' '[:lower:]' >> $tmpfile ;
## build userlist
while read thisuser ; do
echo "net.exe localgroup "$quote""lasercutterlogin""$quote" "$quote""MS"\\"$thisuser""$quote" /add" >> $outputfile ;
done < $tmpfile ;
\______________________
And here's a sample input .csv file:
Badge Identity,Email Address
George Clinton,gclinton@soul.com
Ndea Davenport,ndavenport@soul.com
Aretha Franklin,afranklin@soul.com
Bootsy Collins,bcollins@soul.com
Ray Charles,rcharles@soul.com
Tina Turner,tturner@soul.com
_______________________
When I run it, output file looks like:
net.exe localgroup "lasercutterlogin" "MS\gclinton" /add
net.exe localgroup "lasercutterlogin" "MS
davenport" /add
net.exe localgroup "lasercutterlogin" "MS<0x07>franklin" /add
net.exe localgroup "lasercutterlogin" "MS <0x08>collins" /add
net.exe localgroup "lasercutterlogin" "MS
charles" /add
net.exe localgroup "lasercutterlogin" "MSturner" /add
The first line (gclinton) is processed correctly. That's what they should all look like.
The rest of the lines are malformed because (for example) "backslash - rcharles" is rendered as "newline charles".
I get why this is happening but haven't figured out how to fix it! There must be a better way to write line 17, ideally without creating variables called "backslash" and "quote".
Humbly awaiting any quidance .... thanks!
https://redd.it/1nzroy2
@r_bash
I wrote a noscript to turn a .csv file into a list of Powershell commands to add user accounts to a PC.
Let me say right up front that I know very little about the Windows command line.
And also that my noscripting skills are self-taught so please be merciful.
_______________________
Here's the (anonymized) noscript:
#!/bin/sh
## run this noscript with the input file as argument
## requires csvkit
csvcut=/opt/homebrew/bin/csvcut ;
tmpfile=/tmp/laserUsers.txt ;
myDate=$(date '+%Y.%m.%d%k.%M.%S') ;
outputfile=$HOME/Documents/laser-users-add-batch-"$myDate".txt ;
backslash='\' ;
quote='"' ;
: > $tmpfile ;
## extract emails from downloaded .csv file, delete domain name & convert to lowercase
$csvcut -c "Email Address" "$1" | tail -n+2 | sed 's/@soul.com//g' | tr '[:upper:]' '[:lower:]' >> $tmpfile ;
## build userlist
while read thisuser ; do
echo "net.exe localgroup "$quote""lasercutterlogin""$quote" "$quote""MS"\\"$thisuser""$quote" /add" >> $outputfile ;
done < $tmpfile ;
\______________________
And here's a sample input .csv file:
Badge Identity,Email Address
George Clinton,gclinton@soul.com
Ndea Davenport,ndavenport@soul.com
Aretha Franklin,afranklin@soul.com
Bootsy Collins,bcollins@soul.com
Ray Charles,rcharles@soul.com
Tina Turner,tturner@soul.com
_______________________
When I run it, output file looks like:
net.exe localgroup "lasercutterlogin" "MS\gclinton" /add
net.exe localgroup "lasercutterlogin" "MS
davenport" /add
net.exe localgroup "lasercutterlogin" "MS<0x07>franklin" /add
net.exe localgroup "lasercutterlogin" "MS <0x08>collins" /add
net.exe localgroup "lasercutterlogin" "MS
charles" /add
net.exe localgroup "lasercutterlogin" "MSturner" /add
The first line (gclinton) is processed correctly. That's what they should all look like.
The rest of the lines are malformed because (for example) "backslash - rcharles" is rendered as "newline charles".
I get why this is happening but haven't figured out how to fix it! There must be a better way to write line 17, ideally without creating variables called "backslash" and "quote".
Humbly awaiting any quidance .... thanks!
https://redd.it/1nzroy2
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Script Evaluation
I wrote a shell noscript for Fedora optimization after a fresh install. Please can someone go over it and tell me where I can improve on it.
The noscript: https://github.com/somniasum/crimsonhat/blob/main/crimsonhat.sh
Thank you in advance.
https://redd.it/1o0b8yb
@r_bash
I wrote a shell noscript for Fedora optimization after a fresh install. Please can someone go over it and tell me where I can improve on it.
The noscript: https://github.com/somniasum/crimsonhat/blob/main/crimsonhat.sh
Thank you in advance.
https://redd.it/1o0b8yb
@r_bash
GitHub
crimsonhat/crimsonhat.sh at main · somniasum/crimsonhat
Fedora performance noscript. For linux beginners and hobbyist who want the most out of their system. - somniasum/crimsonhat
An agentic terminal notepad running bash that's integral to your docs
https://visr.sh/
https://redd.it/1o0ketk
@r_bash
https://visr.sh/
https://redd.it/1o0ketk
@r_bash
visr.sh
Visr: Terminal sessions effortlessly turned into runnable docs
rofi, mpc music noscripts with "&" always play #1 in position
my noscript is a bit of a mess, as i was trying different ways to do it, but couldn't wrap my head around it.
the problem was without $escaped\_list, rofi wouldn't display any music containing "&". now it displays them, BUT whenever I select one with that character, it always plays the song with #1 in %position%. for other songs it works perfectly, though
https://redd.it/1o0jby1
@r_bash
my noscript is a bit of a mess, as i was trying different ways to do it, but couldn't wrap my head around it.
the problem was without $escaped\_list, rofi wouldn't display any music containing "&". now it displays them, BUT whenever I select one with that character, it always plays the song with #1 in %position%. for other songs it works perfectly, though
#!/usr/bin/zshcurrent=$(mpc current)songs=$(mpc playlist --format "%position% - %artist% - %noscript%")positionless_list=$(echo "$songs" | sed 's/^[0-9]* - //')escaped_list=$(echo "$positionless_list" | sed -e 's/&/\&/g' -e 's/</\</g' -e 's/>/\>/g' -e 's/"/\"/g' -e "s/'/\'/g")shuffled=$(echo "$escaped_list" | shuf)selection=$(echo "$shuffled" | rofi -dmenu -i -p "$current" -markup-rows)if [ -n "$selection" ]; thenoriginal_line=$(echo "$positionless_list" | grep -F "$selection" | head -n1)pos=$(echo "$songs" | grep -F "$original_line" | head -n1 | awk '{print $1}')mpc play "$pos"fihttps://redd.it/1o0jby1
@r_bash
GitHub
GitHub - davatorium/rofi: Rofi: A window switcher, application launcher and dmenu replacement
Rofi: A window switcher, application launcher and dmenu replacement - davatorium/rofi
why?
First git pull --rebase and then git push. Why use rebase instead of a normal merge? What are the risks if there are conflicts?
https://redd.it/1o0vvm1
@r_bash
First git pull --rebase and then git push. Why use rebase instead of a normal merge? What are the risks if there are conflicts?
https://redd.it/1o0vvm1
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Rename files with inconsistent field separators
Scenario: directories containing untagged audio files, all files per dir follow the same pattern:
artist - album with spaces - 2-digit-tracknum noscript with spaces
The use of " " instead of " - " for the final separator opens my rudimentary ability to errors.
Will someone point me towards learning how to process these files in a way that avoids falses? I.E. how to differentiate [the space that immediately follows a two-digit track number] from [other spaces [including any other possible two-digits in other fields]].
This is as far as I have gotten:
for file in *.mp3
do
art=$(echo "$file" | sed 's,\ \-\ ,\n,g' | sed -n '1p')
alb=$(echo "$file" | sed 's,\ \-\ ,\n,g' | sed -n '2p')
tn=$(echo "$file" | sed 's,\ \-\ ,\n,g' | sed -n '3p' | sed 's,\ ,\n,' | sed -n '1p')
titl=$(echo "$file" | sed 's,\ \-\ ,\n,g' | sed -n '3p' | sed 's,\ ,\n,' | sed -n '2p')
echo mv "$file" "$art"_"$alb"_"$tn"_"$titl"
done
Thanks.
https://redd.it/1o10dff
@r_bash
Scenario: directories containing untagged audio files, all files per dir follow the same pattern:
artist - album with spaces - 2-digit-tracknum noscript with spaces
The use of " " instead of " - " for the final separator opens my rudimentary ability to errors.
Will someone point me towards learning how to process these files in a way that avoids falses? I.E. how to differentiate [the space that immediately follows a two-digit track number] from [other spaces [including any other possible two-digits in other fields]].
This is as far as I have gotten:
for file in *.mp3
do
art=$(echo "$file" | sed 's,\ \-\ ,\n,g' | sed -n '1p')
alb=$(echo "$file" | sed 's,\ \-\ ,\n,g' | sed -n '2p')
tn=$(echo "$file" | sed 's,\ \-\ ,\n,g' | sed -n '3p' | sed 's,\ ,\n,' | sed -n '1p')
titl=$(echo "$file" | sed 's,\ \-\ ,\n,g' | sed -n '3p' | sed 's,\ ,\n,' | sed -n '2p')
echo mv "$file" "$art"_"$alb"_"$tn"_"$titl"
done
Thanks.
https://redd.it/1o10dff
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Check my timestamp check please
Hi,
I need to check how dumb I am.
I have files arriving every day and I have some checks running on those files named FILENAMEXYZ_timestamp.csv with the current date timestamp.
ls $DIR/FILE*$(date '+%y%m%d')*
I don't need the $ do I? I'm currently checking for a file containing a string contained in the variable named <timestamp>, aren't I?
https://redd.it/1o1bbg9
@r_bash
Hi,
I need to check how dumb I am.
I have files arriving every day and I have some checks running on those files named FILENAMEXYZ_timestamp.csv with the current date timestamp.
ls $DIR/FILE*$(date '+%y%m%d')*
I don't need the $ do I? I'm currently checking for a file containing a string contained in the variable named <timestamp>, aren't I?
https://redd.it/1o1bbg9
@r_bash
Is Bash programming?
Since I discovered termux I have been dealing with bash, I have learned variables, if else, elif while and looping in it, environment variables and I would like to know some things
1 bash is a programming language (I heard it is (sh + noscript)
----
Is 2 bash an interpreter? (And what would that be?)
----
3 What differentiates it from other languages?
----
Is 4 bash really very usable these days? (I know the question is a bit strange considering that there is always a bash somewhere but it would be more like: can I use bash just like I use python, C, Java etc?)
-------
5 Can I make my own bash libraries?
------
Bash is a low or high level language (I suspect it is low level due to factors that are in other languages and not in bash)
https://redd.it/1o2le8n
@r_bash
Since I discovered termux I have been dealing with bash, I have learned variables, if else, elif while and looping in it, environment variables and I would like to know some things
1 bash is a programming language (I heard it is (sh + noscript)
----
Is 2 bash an interpreter? (And what would that be?)
----
3 What differentiates it from other languages?
----
Is 4 bash really very usable these days? (I know the question is a bit strange considering that there is always a bash somewhere but it would be more like: can I use bash just like I use python, C, Java etc?)
-------
5 Can I make my own bash libraries?
------
Bash is a low or high level language (I suspect it is low level due to factors that are in other languages and not in bash)
https://redd.it/1o2le8n
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
How do i setup bash LSP in neovim?
I wanted to learn some bash. Then i thought it would be nice to have some auto-completion along the way. I'm on lazy.nvim, so the lsp installation was easy. I think everything works fine, except for i cant autocomplete
https://redd.it/1o3oxue
@r_bash
I wanted to learn some bash. Then i thought it would be nice to have some auto-completion along the way. I'm on lazy.nvim, so the lsp installation was easy. I think everything works fine, except for i cant autocomplete
#!/usr/bin/env bash. Any fix?https://redd.it/1o3oxue
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Am I being inefficient with this copy function I made?
Sometimes I want to copy a file to a directory with a really long path. To save myself having to write out the path for cp, I wrote a copy function that will move the file or directory into a clipboard folder that I created, and a paste function that will move the file or directory from that clipboard directory to my current working directory. So, if I’m in that destination directory with the long path, I can pushd, cd to the file/directory, copy the file, popd, and paste the file. It’s a lot of operations, but they’re all short, and I don’t have to type out that long path. Am I being silly?
https://redd.it/1o4ao2u
@r_bash
Sometimes I want to copy a file to a directory with a really long path. To save myself having to write out the path for cp, I wrote a copy function that will move the file or directory into a clipboard folder that I created, and a paste function that will move the file or directory from that clipboard directory to my current working directory. So, if I’m in that destination directory with the long path, I can pushd, cd to the file/directory, copy the file, popd, and paste the file. It’s a lot of operations, but they’re all short, and I don’t have to type out that long path. Am I being silly?
https://redd.it/1o4ao2u
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
posix arrays
posix_array_write(){ case "$1$2" in *[!0-9a-f\]* ) : ;; * ) eval "memory$1=$2" ;; esac;};
posix_array_read() { case "$1" in *[!0-9a-f\]* ) : ;; * ) eval "printf '%s' \\"\\$memory$1\\"" ;; esac;};
https://redd.it/1o4g8ra
@r_bash
posix_array_write(){ case "$1$2" in *[!0-9a-f\]* ) : ;; * ) eval "memory$1=$2" ;; esac;};
posix_array_read() { case "$1" in *[!0-9a-f\]* ) : ;; * ) eval "printf '%s' \\"\\$memory$1\\"" ;; esac;};
https://redd.it/1o4g8ra
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Struggling to import custom noscript into hummingbot
Whatever I try it does not recognise the file path
https://redd.it/1o4m44u
@r_bash
Whatever I try it does not recognise the file path
https://redd.it/1o4m44u
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Having a lot of trouble with bash/cron
I have been trying for a few days now to do something very specific with my cron job. I want my Python code to be run from a venv every day at noon UTC. My system is not on GMT time, nor do I live there. I also want to code it in such a way that my .sh and .py files will run with pathing that is system agnostic, meaning I want to not have to rewrite all the pathing code every time I move the file. I've done a lot of research and just can't figure out what I'm still doing wrong. I realize this is a very all-over-the-place post, so please feel free to reach out for clarification on any of this.
My questions are as follows:
* Is it possible to pass the timezone variable "Etc/UTC" to crontab without using a .sh file?
* If not, how can I configure my shell file to properly handle variable paths like I would in python with \_\_file\_\_? I was previously just going straight from Python to cron with not a ton of issue with the variable venv paths, but I found that I needed an sh file to do timezones.
* What else am I doing wrong here? Never worked with cron before and honestly I have gone down way too many rabbit holes.
Cron job:
CRON_TZ=Etc/UTC
0 12 * * * bash '/path/to/folder/sotd.sh' >> '/path/to/folder/test.txt' 2>&1
.sh file
#!/usr/bin/env bash
export TZ="Etc/UTC"
source "$PWD/venvlin/bin/activate"
python "$PWD/sotd.py"#!/usr/bin/env bash
Python file:
#!/usr/bin/env python
import os
from pathlib import Path
from dotenv import load_dotenv
pathdir = Path(__file__).parent
filename = Path.joinpath(pathdir.parent, 'test.txt')
with open(filename, "a") as myfile:
myfile.write("\n" + str(pathdir))#!/usr/bin/env python
# rest of code
.
.
.
https://redd.it/1o5z36x
@r_bash
I have been trying for a few days now to do something very specific with my cron job. I want my Python code to be run from a venv every day at noon UTC. My system is not on GMT time, nor do I live there. I also want to code it in such a way that my .sh and .py files will run with pathing that is system agnostic, meaning I want to not have to rewrite all the pathing code every time I move the file. I've done a lot of research and just can't figure out what I'm still doing wrong. I realize this is a very all-over-the-place post, so please feel free to reach out for clarification on any of this.
My questions are as follows:
* Is it possible to pass the timezone variable "Etc/UTC" to crontab without using a .sh file?
* If not, how can I configure my shell file to properly handle variable paths like I would in python with \_\_file\_\_? I was previously just going straight from Python to cron with not a ton of issue with the variable venv paths, but I found that I needed an sh file to do timezones.
* What else am I doing wrong here? Never worked with cron before and honestly I have gone down way too many rabbit holes.
Cron job:
CRON_TZ=Etc/UTC
0 12 * * * bash '/path/to/folder/sotd.sh' >> '/path/to/folder/test.txt' 2>&1
.sh file
#!/usr/bin/env bash
export TZ="Etc/UTC"
source "$PWD/venvlin/bin/activate"
python "$PWD/sotd.py"#!/usr/bin/env bash
Python file:
#!/usr/bin/env python
import os
from pathlib import Path
from dotenv import load_dotenv
pathdir = Path(__file__).parent
filename = Path.joinpath(pathdir.parent, 'test.txt')
with open(filename, "a") as myfile:
myfile.write("\n" + str(pathdir))#!/usr/bin/env python
# rest of code
.
.
.
https://redd.it/1o5z36x
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Does anyone know what this tool is?
I saw a tool that makes any table like command outputs into an actual table (like in sql but more clean, smooth table.).
https://redd.it/1o6b39i
@r_bash
I saw a tool that makes any table like command outputs into an actual table (like in sql but more clean, smooth table.).
https://redd.it/1o6b39i
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
How env var inside single quotes
I have a command that looks like
The value of the json-params flag is variable and so I render it into an environment variable:
which renders as
I am unsure how to get that wrapped in single quotes in order to execute mycommand.
I've tried
and a few other things, but the parameter isn't rendering properly in mycommand. How do I get the single quotes around it?
https://redd.it/1o6fvoi
@r_bash
I have a command that looks like
mycommand --json-params '{"key", "value"}'
The value of the json-params flag is variable and so I render it into an environment variable:
JSON_PARAMS='{"key":"'$(getVal)'"}'
which renders as
{"key": "the dynamic value"}
I am unsure how to get that wrapped in single quotes in order to execute mycommand.
I've tried
mycommand --json-params "'"$JSON_PARAMS"'"
mycommand --json-params "\'"$JSON_PARAMS"\'"
mycommand --json-params '$JSON_PARAMS'
mycommand --json-params '\''$JSON_PARAMS'\''
mycommand --json-params \'$JSON_PARAMS\'
and a few other things, but the parameter isn't rendering properly in mycommand. How do I get the single quotes around it?
https://redd.it/1o6fvoi
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community