#!/bin/bash # substring-extraction.sh String=23skidoo1 # 012345678 Bash # 123456789 awk # Note different string indexing system: # Bash numbers first character of string as 0. # Awk numbers first character of string as 1. echo ${String:2:4} # position 3 (0-1-2), 4 characters long # skid # The awk equivalent of ${string:pos:length} is substr(string,pos,length). echo | awk ' { print substr("'"${String}"'",3,4) # skid } ' # Piping an empty "echo" to awk gives it dummy input, #+ and thus makes it unnecessary to supply a filename. echo "----" # And likewise: echo | awk ' { print index("'"${String}"'", "skid") # 3 } # (skid starts at position 3) ' # The awk equivalent of "expr index" ... exit 0