AWK提供了多种方式来截取字符串,以下是几种常用的方法:
substr
是AWK内置的字符串截取函数,语法为:
substr(string, start [, length ])
示例:
echo "hello world" | awk '{print substr($0, 1, 5)}' # 输出: hello
echo "123456789" | awk '{print substr($0, 3, 4)}' # 输出: 3456
split
函数可以将字符串分割成数组:
split(string, array [, fieldsep])
示例:
echo "one:two:three" | awk '{split($0, a, ":"); print a[2]}' # 输出: two
通过设置FS(字段分隔符)或使用-F选项来分割字段:
echo "apple,orange,banana" | awk -F, '{print $2}' # 输出: orange
使用match
函数和sub
/gsub
函数进行模式匹配和替换:
echo "abc123def" | awk '{match($0, /[0-9]+/); print substr($0, RSTART, RLENGTH)}' # 输出: 123
awk 'BEGIN{str="abcdefg"; print substr(str, 3, 2)}' # 输出: cd
省略length参数即可截取到字符串末尾:
echo "linux programming" | awk '{print substr($0, 7)}' # 输出: programming
echo " trim me " | awk '{sub(/^[ \t]+/, ""); sub(/[ \t]+$/, ""); print}' # 输出: trim me
AWK的字符串处理功能非常强大,可以根据具体需求选择合适的截取方法。