Pertanyaan saya adalah kelanjutan dari
Cara mem-parsing file untuk mengekstrak 3 digit angka yang disimpan dalam "nomor grup"
Saya mencoba untuk mengintegrasikan dalam satu skrip shell serangkaian perintah itu
parsing standar eropa untuk mengekstrak urutan uji
ubah pengkodean teks menjadi utf8
proseskan hasilnya dengan rutinitas awk yang diberikan kepada saya pada pos di atas.
simpan konten dalam file tujuan
Untuk sementara saya menulis skrip di bawah ini. Saya hanya bisa mencapai step 1
dan step 4
, tetapi tidak step 2
juga step 3
. Saya ingin tahu apakah file perantara (sementara) harus dibuat. Saya telah mencoba untuk menyimpan output langkah menengah ke dalam variabel, tetapi tidak berhasil. Setiap bantuan juga akan membantu tentang kemungkinan kesalahan dan cara terbaik untuk melakukan ini.
#!/bin/bash
# creating the Latex code for a test procedure
awkcommand= "/usr/bin/awk
'
$1 == "Group" {printf("\\section{%s %d}\n", $1, $2); next}
{
title = sep = ""
for (i=1; i<=NF; i++)
if ($i ~ /^[0-9][0-9][0-9]$/) {
printf("\\subsection{%s} \n\\TestDetails{%d}\n", title, $i)
break
}
else {
title = title sep $i
sep = FS
}
}
'
"
sourcefolder="/Users/yves/Desktop/Test-folder-parsing/"
sourcefile="NFEN3545-001.pdf"
destfile="Latex-code.tex"
destfolder=$sourcefolder
destinationfilepath=${destfolder}${destfile}
extractioncmd="/usr/local/bin/pdftotext -layout -f 54 -l 54"
modifier=" -"
#textencodingcmd="/usr/bin/iconv -f L1 -t UTF-8" # Needed but not used
${extractioncmd} ${sourcefolder}${sourcefile} ${modifier} > $destinationfilepath
exit 0
sumber
[Add Comment]
tombol untuk melihat apa yang diizinkan dalam komentar). (Dalam hal ini Anda mungkin lebih baik memperbarui posting asli Anda).Jawaban:
Anda dapat menyimpan kode yang diteruskan ke
/usr/bin/awk
dalam sebuah variabel dan/usr/bin/awk
dalam variabel yang terpisah seperti itu (belum diuji):Pemakaian:
Perhatikan bahwa saya mengubah tanda kutip ganda menjadi tanda kutip tunggal. Dalam tanda kutip ganda,
$i
diganti dengan isi dari variabel shelli
. Dalam tanda kutip tunggal, itu adalah literal$i
, yangawk
diharapkan untuk dilihat.Selain itu, Anda tidak keluar dari tanda kutip ganda dalam string sehingga
awk
tidak pernah melihatSebaliknya, ia melihat
Jika
$1
dan$2
kosong,awk
lihatAnda yakin perlu menyimpan lokasi perintah? Anda biasanya dapat mengandalkan penemuan
awk
dalam direktori di jalur pengguna Anda. Jika Anda tidak menggunakan path lengkap keawk
, tidak ada alasan untuk membuat parameterawk
.sumber