【发布时间】:2014-04-13 16:26:41
【问题描述】:
我正在尝试编写一个带有文件名和数字的 Shell 脚本,并打印出文件中的第 n 个单词。有没有简单的命令可以做到这一点?
【问题讨论】:
我正在尝试编写一个带有文件名和数字的 Shell 脚本,并打印出文件中的第 n 个单词。有没有简单的命令可以做到这一点?
【问题讨论】:
试试:
#!/bin/bash
tr '\n' ' ' < "$1" | cut -d' ' -f$2
然后运行:
./script.sh filename.txt 30
假设:单词由单个空格分隔,单词不包含空格。
【讨论】:
如果您想处理标点符号和多个空格,请尝试类似
#!/bin/bash
sed -e 's/[[:punct:]]*//g;s/[[:space:]]\+/\n/g' < $1 | sed $2q;d
【讨论】:
你可以试试这个
#!/bin/bash
awk -v var=$2 '{print $var}' < $1
运行示例:
./script.sh filename.txt 30
【讨论】: