可管道字符串提取

发布于 2024-10-21 02:09:37 字数 473 浏览 3 评论 0原文

我试图从参数中提取值,然后将其通过管道传输到 shell 中的另一个命令。

字符串参数的长度可以为零,也可以是 12 的倍数(4 个字符代码 + 8 位日期)。例如:

123420110404123520110404123620110404
500520110404

要求输出为每组 12 个字符中的前 4 个字符,如果没有输入则为空字符串(“”)。例如:

123412351236
5005

使用示例:

[user@machine abc]$ echo 123420110404123520110404123620110404 | [magic set of manipulation commands]
123412351236

注意:我已经 cut、sed &安装了 Perl。我没有安装 awk。

I am trying to extract values from an argument which will then be piped to another command in a shell.

The string argument can be zero length, or multiples of 12 (4 char code + 8 digit date). e.g.:

123420110404123520110404123620110404
500520110404

The output required is the first 4 characters in each group of 12, or a blank string ("") if there is no input. e.g.:

123412351236
5005

Usage example:

[user@machine abc]$ echo 123420110404123520110404123620110404 | [magic set of manipulation commands]
123412351236

Note: I have cut, sed & Perl installed. I do not have awk installed.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏日浅笑〃 2024-10-28 02:09:37

我能想象的一件事是:

echo 123420110404123520110404123620110404 | sed -r 's/(.{4}).{8}/\1/g'

或者

echo 123420110404123520110404123620110404 | sed 's/\(....\)......../\1/g'

One thing I could imagine is:

echo 123420110404123520110404123620110404 | sed -r 's/(.{4}).{8}/\1/g'

or

echo 123420110404123520110404123620110404 | sed 's/\(....\)......../\1/g'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文