Minulla on tiedosto str.txt
, jolla on seuraavat esimerkkitietueet.
31,2713810299,1,11-Aug-15 19:52:10 32,2713810833,1,11-Aug-15 21:36:18
Haluan nyt tulostaa tulosteen awk: llä kuten alla.
cat str.txt|awk -F, "{print substr("$4",1,9)}" -
Tuloksen tulisi olla :
"11-Aug-15" "11-Aug-15"
vastaus
yksittäinen lainaus olisi \x27
awk -F, "{print "\x27"substr($4,1,9)"\x27" }"
kommentit
- Käytä oktaalia
\047
kohteelle'
, ei hex\x27
. Katso awk.freeshell.org/PrintASingleQuote . - \ x22 kaksoistarjous (jos tarvitset sitä)
vastaus
POSIXly:
awk -F"[ ,]" -v q=""" "{print q$4q}" <file
Vastaa
Hieman erilainen lähestymistapa POSIX Awk: lle:
awk -F"[, ]" "{printf "\047%s\047\n", $4}" file "11-Aug-15" "11-Aug-15"
Vastaa
Voit käyttää komentoa awk
näin:
cat str.txt|awk -F, "{print substr($4,1,9)}" -
Seuraavan tuloksen saaminen:
11-Aug-15 11-Aug-15
Jos yksittäiset lainausmerkit vaativat rivien alussa ja lopussa, tee näin:
cat str.txt|awk -F, "{printf "\047%s\047\n",substr($4,1,9)}" -
Seuraavan tuloksen saaminen:
"11-Aug-15" "11-Aug-15"
kommentit
- Ei yksittäisiä lainausmerkit tulostetaan, ja kysymys määrittelee ne.
- @jasonwryan: Tarkista, että vastaus on päivitetty vaatimusten mukaisesti.