加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Unix – 需要剪切具有多个空格的文件作为分隔符 – awk或cut?

发布时间:2020-12-16 01:23:53 所属栏目:安全 来源:网络整理
导读:我需要从Unix中的文本文件中获取记录.分隔符是多个空格.例如: 2U2133 1239 1290fsdsf 3234 从此,我需要提取 1239 3234 所有记录的分隔符将始终为3个空格. 我需要在unix脚本(.scr)中执行此操作,并将输出写入另一个文件或将其用作do-while循环的输入.我试过下
我需要从Unix中的文本文件中获取记录.分隔符是多个空格.例如:
2U2133   1239  
1290fsdsf   3234

从此,我需要提取

1239  
3234

所有记录的分隔符将始终为3个空格.

我需要在unix脚本(.scr)中执行此操作,并将输出写入另一个文件或将其用作do-while循环的输入.我试过下面:

while read readline  
do  
        read_int=`echo "$readline"`  
        cnt_exc=`grep "$read_int" ${Directory path}/file1.txt| wc -l`  
if [ $cnt_exc -gt 0 ]  
then  
  int_1=0  
else  
  int_2=0  
fi  
done < awk -F'  ' '{ print $2 }' ${Directoty path}/test_file.txt

test_file.txt是输入文件,file1.txt是一个查找文件.但是上面的方法是不工作,给我awk -F附近的语法错误

我尝试将输出写入文件.以下在命令行中工作:

more test_file.txt | awk -F'   ' '{ print $2 }' > output.txt

这是在命令行中将记录写入output.txt.但同样的命令在unix脚本中不起作用(它是一个.scr文件)

请让我知道我在哪里错了,我如何解决这个问题.

谢谢,
Visakh

这取决于您的机器上的版本或实现.一些版本支持一个选项,通常是-i,这意味着“忽略空白字段”,或者等效地允许字段之间的多个分隔符.如果支持,请使用:
cut -i -d' ' -f 2 data.file

如果没有(并不是普遍的 – 也许甚至不是广泛的,因为GNU和MacOS X都没有选择),那么使用awk更好,更便携.

但是,您需要将awk的输出导入到循环中:

awk -F' ' '{print $2}' ${Directory_path}/test_file.txt |
while read readline  
do  
    read_int=`echo "$readline"`  
    cnt_exc=`grep "$read_int" ${Directory_path}/file1.txt| wc -l`  
    if [ $cnt_exc -gt 0 ]  
    then int_1=0  
    else int_2=0
    fi  
done

唯一的残留问题是while循环是否在子shell中,因此不会修改您的主shell脚本变量,只是其自己的这些变量的副本.

使用bash,您可以使用process substitution:

while read readline  
do  
    read_int=`echo "$readline"`  
    cnt_exc=`grep "$read_int" ${Directory_path}/file1.txt| wc -l`  
    if [ $cnt_exc -gt 0 ]  
    then int_1=0  
    else int_2=0
    fi  
done < <(awk -F' ' '{print $2}' ${Directory_path}/test_file.txt)

这将在当前shell中留下while循环,但是排列命令的输出就像从文件一样出现.

${Directory path}中的空白通常不合法 – 除非是我错过的另一个Bash功能;你也有一个错字(Directoty)在一个地方.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读