Saya memiliki direktori dengan beberapa .txt
file.
Dari masing-masing file ini, saya ingin memilih baris pertama dan mencetaknya ke .txt
file baru (untuk mendapatkan daftar semua baris pertama).
Saya mencoba dengan awk
dan sed
perintah dan dikombinasikan dengan lingkaran, tetapi tidak berhasil.
command-line
text-processing
Annemieke Smet
sumber
sumber
Jawaban:
Gunakan
head
:-n1
memberitahuhead
untuk mengekstrak baris pertama saja.-q
memberitahu kepala untuk tidak mencetak nama file.sumber
Menggunakan
grep
:grep
akan cocok dengan karakter apa pun dan akan keluar setelah pertandingan pertama yaitugrep
akan menampilkan baris pertama dari semua file input dan kami menyimpannyaout.txt
.sumber
Hanya menggunakan Bash:
*.txt
diperluas ke daftar folder / file yang diakhiri dengan.txt
di direktori kerja saat ini (karena hanya ada file folder yang berakhir dengan.txt
tidak menjadi perhatian);<"$f" read line
membaca satu baris dari jalur file yang disimpanf
dan menyimpannya diline
;printf "$line\n" >>new.txt
: menambahkan kontenline
kenew.txt
;sumber
Anda telah mencobanya
awk
, ini adalahawk
versisumber
Pendekatan lain dengan AWK adalah untuk memberitahu AWK untuk mencetak, tetapi kemudian segera pergi ke file berikutnya
sed
juga memungkinkan pencetakan garis tertentu. Di sini saya sudah mengombinasikannya denganfind
Dan perl:
Dan yang tak kalah pentingnya,
grep
Menyimpan semuanya ke satu file hanya masalah menambahkan
> outputFile.txt
pada akhir perintah ini.sumber