GNU/Linux >> Linux の 問題 >  >> Ubuntu

文字列を分割し、文字を抽出して元に戻しますか?

wva/sia/e1の形式の文字列があります 、bct/e2sv/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>で終わる限り

使用する

  1. スクリプトを空のファイルにコピーし、rearrange.pyとして保存します
  2. 文字列を引数として実行します。例:

    python3 /path/to/rearrange.py wva/sia/e1
    
    > ws1
    

説明

スクリプトはそれ自体をほぼ説明していますが、コメントも付けられています。


Ubuntu
  1. NautilusとThunarの`backspace`キーボードショートカットを復活させますか?

  2. Ubuntuソフトウェアセンターからログアウトしてから再度ログインする方法は?

  3. バックスペースをノーチラス(3.18+)に戻す!?

  1. Ubuntu 19.04 + Gnome 3.32 =ドックとトップバーに動的な透明性を戻す方法は?

  2. PleskでWordPressのインストールをバックアップおよび復元する方法

  3. i-search を前後に逆検索するにはどうすればよいですか?

  1. シェルの$*の各要素に文字列を追加して追加しますか?

  2. Ubuntu – Gedit、Apache、およびIdeを一緒に再生できるようにアクセス許可を構成するにはどうすればよいですか?

  3. 自己解凍型スクリプト:Tar -xoとDd?