BASH:从开始打印第N封信

时间:2014-11-17 17:02:25

标签: bash file cut

我想从所有行开头阅读所有文件并打印第N个字母(只是字母)。

我读了这样的文件:

  

读取行

     

DO

     

echo $ line>>的text.txt

     

完成< input.txt中

然后我这样做:

  

cut -c3 text.txt

但我意识到它并没有按照我的意愿在这些输入中运作:

  

他llo

  

重新设置+

我想得到' l'对于第一次输入和' s第二次输入。

但是这段代码发现了' '第一次输入和' +'第二次输入

anubhava写了这段代码:

  

awk -v n = 3' {gsub(/ + /,""); print substr($ 0,n,1)}'文件

除了空间

之外,它正在为第N个字母工作

但现在我想要打印第N个字母(只是字母)

我该怎么办?

1 个答案:

答案 0 :(得分:1)

你可以使用这个awk:

awk -v n=3 '{gsub(/ +/, ""); print substr($0, n, 1)}' file

<强>测试

s='re set'
awk -v n=3 '{gsub(/ +/, ""); print substr($0, n, 1)}' <<< "$s"
s

s='He llo'
awk -v n=3 '{gsub(/ +/, ""); print substr($0, n, 1)}' <<< "$s"
l

s='1 2 345'
awk -v n=3 '{gsub(/ +/, ""); print substr($0, n, 1)}' <<< "$s"
3