gpt4 book ai didi

linux - 获取一个字段的最后 n 个字符并在 Linux 中完成字符串的第二个字段

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:47 25 4
gpt4 key购买 nike

我在一个文件中有两行:

MUMBAI,918889986665,POSTPAID,CRBT123,CRBT,SYSTEM,151004,MONTHLY,160201,160302
MUMBAI,912398456781,POSTPAID,SEGP,SEGP30,SMS,151004,MONTHLY,160201,160302

我想在上面的行中剪切字段 2 和 4。条件是:从字段 2 中,我只需要十位数字。

期望的输出:

8889986665,CRBT
2398456781,SEGP30

我正在尝试以下命令:

 cut -d',' -f2 test.txt | cut -c3-12 && cut -d',' -f4 test.txt

我的输出:

 8889986665
2398456781
CRBT
SEGP30

请帮助我实现预期的输出。

最佳答案

解决方案 2:这是将达到目的的解决方案:

剪切 -d',' -f2,4 1 | sed 's/.*\([0-9]\{10\}\),\(.*\)/\1,\2/'

8889986665,彩铃123

2398456781,SEGP

  • cut 将为我们提供第二个和第四个字段。
  • 在 sed 内部,.* 跳过初始字符,直到遇到前面的第一个模式。
  • 第一个模式是 10 位数字后跟一个分号:\([0-9]\{10\}\),
  • 第二个模式是该行的其余部分:\(.*\)
  • 现在我们打印两个模式,中间有分号:\1,\2

请注意,数字 10 可以替换为要显示的字符数 在分隔符,之前提取[0-9]可以用.代替,如果 这些字符可以是任何类型的字符。

解决方案一:

在这种情况下,使用 cut 对您来说是最简单的。

您首先需要从行中过滤出所需的字段 (2,4),然后进行更多过滤(字段 #2 中只有 10 个字符)

$ cut -d',' -f2,4 test.txt | cut -c3-        
8889986665,CRBT123
2398456781,SEGP

关于linux - 获取一个字段的最后 n 个字符并在 Linux 中完成字符串的第二个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35764769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com