Saya memiliki string seperti itu:
|abcdefg|
Dan saya ingin mendapatkan string baru yang disebut someway (seperti string2) dengan string asli tanpa dua |
karakter di awal dan di akhir sehingga saya akan memiliki ini:
abcdefg
Apakah itu mungkin di bash?
bash
command-line
scripts
Matteo Pagliazzi
sumber
sumber
awk -F\| '{ print $2 }' <<<"|string|"
awk
solusi keren . Saya perlu belajarawk
.IFS='|' read string2 <<< $string
:)"${string:1:-1}"
man bash
.Inilah solusi yang tidak tergantung pada panjang string (bash):
sumber
Keluar dari beberapa posting yang tercantum di sini tampaknya cara paling sederhana untuk melakukannya adalah:
sunting: berfungsi di ubuntu dengan bash 4.2; tidak bekerja pada centOS dengan bash 4.1
sumber
Cara lain adalah dengan menggunakan
head
&tail
perintah:sumber
[something something]
tujuan untuk memotong kurung, jadiecho "[something something]" | tail -c +2 | head -c -2
berhasil. Terima kasih atas tipnya!echo -n "|abcdefg|" | tail -c +2 | head -c -1
. Saya tidak yakin mengapa suntingan saya ditolak ... Sangat menyedihkan, jujur saja. Lihatman head
untuk info lebih lanjutDan satu lagi:
sumber
Anda juga dapat menggunakan sed untuk menghapus | tidak hanya referensi simbol itu sendiri tetapi menggunakan referensi posisi seperti pada:
Di mana ':' adalah pembatas (Anda dapat menggantinya dengan / atau karakter apa pun yang tidak ada dalam kueri, tanda apa pun yang mengikuti huruf s akan melakukannya) Di sini ^ (tanda sisipan) berarti pada awal string input dan sarana $ (dolar) berarti pada akhirnya. . (titik) bahwa itu setelah tanda sisipan dan tanda sebelum tanda dolar mewakili satu karakter. Jadi dengan kata lain kita menghapus karakter pertama dan terakhir. Ingat ini akan menghapus karakter apa pun walaupun | itu tidak ada dalam string.
EX:
sumber
fungsi shell
Pendekatan yang sedikit lebih verbose, tetapi bekerja pada semua jenis karakter pertama dan terakhir, tidak harus sama. Ide dasarnya adalah kita mengambil variabel, membacanya karakter demi karakter, dan menambahkan hanya yang kita inginkan ke variabel baru
Inilah keseluruhan gagasan yang diformat menjadi fungsi yang bagus
Dan di sini adalah fungsi yang sama dalam aksi:
Python
atau di baris perintah:
AWK
Rubi
sumber
Solusi kecil dan universal:
Istimewa dalam hal ini dan memungkinkan '|' karakter mungkin ada atau tidak:
sumber
Dari http://tldp.org/LDP/abs/html/parameter-substitution.html
sumber