插件窝 干货文章 linux awk怎么截取字符串

linux awk怎么截取字符串

截取 字符串 输出 函数 369    来源:    2025-05-13

使用AWK截取字符串的方法

AWK提供了多种方式来截取字符串,以下是几种常用的方法:

1. 使用substr函数

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

2. 使用split函数分割字符串

split函数可以将字符串分割成数组:

split(string, array [, fieldsep])

示例:

echo "one:two:three" | awk '{split($0, a, ":"); print a[2]}'  # 输出: two

3. 使用字段分隔符

通过设置FS(字段分隔符)或使用-F选项来分割字段:

echo "apple,orange,banana" | awk -F, '{print $2}'  # 输出: orange

4. 使用正则表达式匹配

使用match函数和sub/gsub函数进行模式匹配和替换:

echo "abc123def" | awk '{match($0, /[0-9]+/); print substr($0, RSTART, RLENGTH)}'  # 输出: 123

5. 截取变量中的字符串

awk 'BEGIN{str="abcdefg"; print substr(str, 3, 2)}'  # 输出: cd

6. 从特定位置截取到末尾

省略length参数即可截取到字符串末尾:

echo "linux programming" | awk '{print substr($0, 7)}'  # 输出: programming

7. 结合其他函数使用

echo "   trim me   " | awk '{sub(/^[ \t]+/, ""); sub(/[ \t]+$/, ""); print}'  # 输出: trim me

AWK的字符串处理功能非常强大,可以根据具体需求选择合适的截取方法。