Saya perlu menghapus teks dari baris sebelum pembatas.
Sebagai contoh:
(123434): hello::{apple,orange,mango}.
Saya perlu menghapus teks sebelum terlebih dahulu :. yaitu (123434).
Apakah ada perintah di linux untuk melakukan tugas ini?
Saya perlu menghapus teks dari baris sebelum pembatas.
Sebagai contoh:
(123434): hello::{apple,orange,mango}.
Saya perlu menghapus teks sebelum terlebih dahulu :. yaitu (123434).
Apakah ada perintah di linux untuk melakukan tugas ini?
Jawaban:
sedPerintah ini harus melakukan trik. Perintah berikut akan menimpa file:
sed -i 's/^[^:]*:/:/' file
Untuk hanya mencetak hasilnya, hapus -ibendera. Untuk meletakkan output di file baru, hapus -iflag dan redirect output:
sed 's/^[^:]*:/:/' file > new_file
Anda dapat melakukan ini dengan instruksi Bash yang cukup sederhana :
mytext="(123434): hello::{apple,orange,mango}."
echo ${mytext#*)}
Ini akan dicetak : hello::{apple,orange,mango}.. Anda dapat memotong prefiks dan sufiks dengan cara yang sama. Selain itu, definisi awalan dan sufiks dapat berisi wildcard.
Potong awalan - hingga pencocokan wildcard awalan pertama: ${variable#prefix}
Potong awalan - hingga pertandingan wildcard awalan terakhir: ${variable##prefix}
Potong sufiks - hingga pertandingan wildcard sufiks pertama: ${variable%suffix}
Potong sufiks - hingga pertandingan wildcard sufiks terakhir: ${variable%%suffix}
Mungkin terlihat tidak jelas pada pandangan pertama, lihat contoh berikut:
mytext="xAxBxAxBx"
echo ${mytext#*A} # will print: xBxAxBx
echo ${mytext##*A} # will print: xBx
echo ${mytext%B*} # will print: xAxBxAx
echo ${mytext%%B*} # will print: xAx
echo ${mytext%%C*} # will print: xAxBxAxBx
Dalam contoh terakhir, pola tidak cocok, jadi tidak ada yang dipotong.
echo ${mytext#*:}:. Ini akan menangani garis seperti (123)(434): hello::{apple,orange,mango}.dan 123434: hello::{apple,orange,mango}.
sedatauawk