wva/sia/e1
の形式の文字列があります 、bct/e2
、sv/de/e11
。常に<Part1>/e<NUM>
または<Part1>/<Part2>/e<NUM>
。私が欲しいのは、パーツの最初の文字を保持し、スラッシュとeを捨てることによって文字列を短くすることです:
wva/sia/e1 > ws1
bct/e2 > b2
sv/de/e11 > sd11
どうすればshスクリプト内でそれを行うことができますか?
編集:文字列はジョブ名を表します:
[...]
job_name=$1 # e.g. 'wva/sia/e1'
job_name=cut_name(job_name) # e.g. 'ws1'
[...]
承認された回答:
スクリプトの形式 あなたが求めるものとして:
#!/usr/bin/env python3
import sys
# read the input, split by /
st = sys.argv[1].split("/")
# get the first char of all sections *but* the last one
# add the last *from* the first character
print("".join([s[0] for s in st][:-1])+st[-1][1:])
これはどの長さでも機能することに注意してください。例:
wva/sia/bct/wva/sia/e1
になります
wsbws1
最後のセクションが/e<num>
で終わる限り
使用する
- スクリプトを空のファイルにコピーし、
rearrange.py
として保存します -
文字列を引数として実行します。例:
python3 /path/to/rearrange.py wva/sia/e1 > ws1
説明
スクリプトはそれ自体をほぼ説明していますが、コメントも付けられています。