Pra*_*rma 6 shell-script echo cut
我有input.txt
以下 TAB 分隔格式的数据文件-
23776112 Inactive Active
23415312 Inactive Active
Run Code Online (Sandbox Code Playgroud)
根据要求,在while循环内,我想使用剪切第一列的数据并打印它-
以下是部分代码-
......
......
while read line
do
SN=`echo ${line}|cut -d ' ' -f1`
echo $SN
done < input.txt
....
....
Run Code Online (Sandbox Code Playgroud)
要将制表符用作上面的分隔符,我正在使用 Ctrl V Tab
但输出并不如预期。我得到 O/P-
23776112 Inactive Active
23415312 Inactive Active
Run Code Online (Sandbox Code Playgroud)
而我想要 O/P 之类的 -
Run Code Online (Sandbox Code Playgroud)23776112 23415312
Kus*_*nda 13
cut -f 1 input.txt
Run Code Online (Sandbox Code Playgroud)
这为您提供了制表符分隔文件中的第一列input.txt
。的默认字段分隔符cut
是制表符,因此无需进一步指定。
如果分隔符实际上是一个空格,请使用
cut -d ' ' -f 1 input.txt
Run Code Online (Sandbox Code Playgroud)
如果事实证明有多个制表符和/或空格,请使用awk
:
awk '{ print $1 }' input.txt
Run Code Online (Sandbox Code Playgroud)
此操作不需要 shell 循环,无论您使用cut
或awk
.
另请参阅“为什么使用 shell 循环处理文本被认为是不好的做法? ”。
您的脚本不起作用的原因是因为当您echo
使用未加引号的变量时,选项卡会消失。
有关的:
归档时间: |
|
查看次数: |
16523 次 |
最近记录: |