Misalkan saya punya file:
File1:
PAPER TEAM MANISH NISHA GARIMA JYOUTI ........etc
File2 yang saya inginkan:
PAPER
TEAM
MANISH
NISHA
GARIMA
JYOUTI
Baris ke konversi kolom File1.
awk
sed
text-formatting
yisha
sumber
sumber
Jawaban:
Dengan menggunakan
tr
, ganti setiap karakter spasi berulang () dengan satu
\n
karakter baris baru ( ).Tapi saya pikir Anda menginginkan sesuatu seperti ini?
Dengan
awk
kita bisa melakukan:Ini menggabungkan setiap posisi nomor yang diajukan menjadi satu dan
END
mencetak hasil yang akan menjadi baris pertama di kolom pertama, baris kedua di kolom kedua, dll. Tentu saja file input terbatas pada ukuran memori Anda.sumber
Anda bisa melakukannya melalui grep. Secara default grep, akan mencetak kecocokan di baris baru yang terpisah.
ATAU
sumber
grep
Anda juga bisa menggunakan
fmt
perintah:sumber
Dengan datamash GNU :
sumber
datamash
sepertinya alat terbaik untuk tugas itu, tetapi menarik berapa banyak alat lain yang bisa digunakan!Anda juga dapat melakukan ini menggunakan
sed
:CATATAN: Tidak menangani situasi di mana kata-kata mengandung spasi.
sumber
\n
sebagai baris baruMenggunakan
awk
, mengatur pemisah bidang keluaran (OFS
) sebagai pemisah rekaman (baris) (RS
):sumber
Menggunakan
for
loop:sumber
Anda juga dapat mencoba menggunakan
sed
Harap dicatat bahwa saya menggunakan
@
sebagai pemisah untuk operasi penggantian. Ini juga akan membuat file cadangan. Jika Anda tidak membutuhkan cadangan, hapus .baksumber
Versi python:
Ini menggunakan
<
pengalihan ke stdin python dariinput.txt
dan menulis untukoutput.txt
menggunakan>
pengalihan. One-liner itu sendiri membaca di semua baris daristdin
daftar string, di mana semua spasi diganti dengan baris baru, dan kami membangun kembali seluruh teks menggunakan.join()
fungsi.Pendekatan alternatif untuk menghindari beberapa spasi dalam rangkaian yang diganti dengan baris baru adalah dengan menggunakan
.split()
untuk memecah baris menjadi daftar kata. Dengan begitu, kami dapat memastikan bahwa setiap kata hanya dipisahkan oleh satu baris barusumber
Menggunakan
xargs
, (dicuri dari jawaban souravc ):Atau jika pemformatan ulang minor diperlukan, gunakan
printf
format string yang mungkin diperlukan:sumber
Solusi saya adalah:
sumber
sumber