每行都有一个单词和一个数字。我需要以某种方式选择第 n 个字母,它们一起组成一个新单词。例如:
and 3
for 3
map 2
wrestle 1
draw
Run Code Online (Sandbox Code Playgroud)
它必须这样开始
cat char.txt | ...
Run Code Online (Sandbox Code Playgroud)
而且我只允许使用 sed(不允许使用 awk、perl,...)。
我知道如何选择所有数字
sed 's/\(.*\) \(.*\)/\2/g'
Run Code Online (Sandbox Code Playgroud)
或文字
sed 's/\(.*\) \(.*\)/\1/g'
Run Code Online (Sandbox Code Playgroud)
我在想
cat char.txt | head -c $(sed 's/\(.*\) \(.*\)/\2/g') | tail -c 1 | sed 's/\n\//g'
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为它不会迭代所有行,并且由于某种原因它甚至无法在单行上工作。
请需要一些帮助和指导
泰
while read w n; do echo -n ${w:(($n-1)):1}; done < filename
Run Code Online (Sandbox Code Playgroud)
输出:
draw
Run Code Online (Sandbox Code Playgroud)
${parameter:offset:length}:
Substring Expansion. Expands to up to length characters of parameter
starting at the character specified by offset.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4748 次 |
| 最近记录: |