如何使用分隔符读取文件,并使用shell脚本基于分隔符逐行写入不同的文件
我有一个要求,比如文件foo.txt,其中包含键值对,如下所示: vi foo.txt如何使用分隔符读取文件,并使用shell脚本基于分隔符逐行写入不同的文件,shell,ksh,Shell,Ksh,我有一个要求,比如文件foo.txt,其中包含键值对,如下所示: vi foo.txt a^1.0^b^2^cc^30^d^4^e^55^fg^67.0^h^8^i^99 等等。 我必须编写一个shell脚本,将不同行中的每个键值对放到不同的文件中,比如goo.txt,其中包含: a^1.0^ b^2^ cc^30^ D^4^ e^55^ fg^67.0^ h^8^ i^99^ 我有一个类似的Perl脚本,但是我想要shell脚本。Perl脚本类似于 #! /usr/bin/perl -w
a^1.0^b^2^cc^30^d^4^e^55^fg^67.0^h^8^i^99
等等。
我必须编写一个shell脚本,将不同行中的每个键值对放到不同的文件中,比如goo.txt,其中包含:
a^1.0^
b^2^
cc^30^
D^4^
e^55^
fg^67.0^
h^8^
i^99^
我有一个类似的Perl脚本,但是我想要shell脚本。Perl脚本类似于
#! /usr/bin/perl -w
#
use strict;
use Getopt::Long;
my $filename = "";
my $Tags = "";
GetOptions ('file=s' => \$filename);
if (defined $filename and $filename ne "")
{
open (my $DATA,$filename) or die $!;
$Tags = <$DATA>;
while ($Tags =~ m/(.*?\^.*?\^)/g)
{
print "$1\n";
}
close($DATA)
}
我想要一个使用shell脚本的类似代码。需要帮助才能根据我的要求编写一个shell脚本ksh。cat filename | awk-F^'{split$0,a,^;fori=1;i您希望在每秒钟之后有一个额外的换行符^。 字段没有^,非^字符可以写为[^^]。 每两个字段包含任意数量的字母,不包括^后跟^和^, 应替换为匹配,然后换行
sed 's/[^^]*^[^^]*^/&\n/g' foo.txt
只使用代码的答案通过一些解释得到了改进。另外,花时间格式化代码也会很有帮助。这正是我想要的。它解决了我的问题