in bash I have got something like this:
$ <cmd> <arg1> input_file_123.txt > ouput_file_123.txt
I want to reuse input_file_123.txt to name the output file but replace let's say "input" with "output".
I found this: How can I recall the argument of the previous bash command?,
tried this:
$ <cmd> <arg1> input_file_123.txt > !$:s/input/output
but it says "substitution failed".
I would need it to be a one-liner I can use within a jupyter notebook.
Thx for your help!
CodePudding user response:
You can save _file_123.txt as a variable: var="_file_123.txt".
After that you can call the name by using: input${var} and output${var}.
CodePudding user response:
One option:
# store the input file in a variable
$ infile='input_file_123.txt'
# use parameter substitution to change 'input' to 'output'
$ <cmd> <arg1> "${infile}" > "${infile//input/output}"
Not sure I understand the 'one-liner' requirement but fwiw:
$ infile='input_file_123.txt'; <cmd> <arg1> "${infile}" > "${infile//input/output}"
