在AWK脚本中,我需要将脚本的输出发送到文件中,同时还需要将其打印到终端。有没有一个好的和整洁的方法,我可以做到这一点,而不拥有每一个打印重定向到文件的副本?
我不是特别擅长做SSCCE的例子,但下面是我演示我的问题的尝试;
BEGIN{
print "This is an awk script"
# I don't want to have to do this for every print
print "This is an awk script" > thisiswhack.out
}
{
# d
如何使用nawk/awk根据文件中某一列的值将记录重定向到不同的输出文件?
chethan RA
Ramesh RA
Sachin RA
Gundaa DI
dravid DI
Suresh SE
因此,我希望将RA记录重定向到一个文件,将DI记录重定向到另一个文件,并将SE记录重定向到另一个文件。第二列中的值可以是任何值,不需要是RA、DI或SE。因此,根据第二列中的不同值,需要将记录重定向到不同的文件。
在一个shell中,我浏览几个文件来重新格式化它们,所以我生成一个输出,文件名+ .cpy扩展名。
例如,我生成到test.des.utf8.cpy的test.des.utf8,我想要做的是从test.des.utf8到TEST.cpy。
我试过这样的方法,但对我没有用:
"$f" "${f%.txt}.text"
下面是输出重定向的shell:
for f in $SOURCE_DIRECTORY
do
b=$(basename "$f")
echo "Generating $f file in copy.."
我有一个像这样的inputfile:
<event>
foo
bar
</event>
<event>
random text
</event>
我想把它分成几个输出文件,这样每个文件都有一个<event>...</event>。
我尝试用awk来实现这一点,但我不清楚如何将输出重定向到不同的输出文件。有可能吗?还是我必须求助于类似于蟒蛇之类的东西?
以下工作在openSUSE Leap 15.3上运行良好。正如在标题行中,当我在终端上滚动滚动条时,对每个输出屏幕重复如下:
ps aux --headers
但是,当我将输出重定向到文件或其他命令时,我只得到输出第一行的初始标题行。每个输出屏幕的预期头行都丢失了。实际进程的输出显示ok。重新创建该问题的2个命令:
ps aux --headers | less
或
ps aux --headers >> ps.out
当使用tee命令输出屏幕和文件时,也会出现同样的问题:
ps aux --headers | tee ps-tee.out
我使用以下方法查看是否可以获得任何错误
给出一个名为employee.txt的格式文件(Firstname、Lastname、Salary),其中空格作为字段分隔符:
Foo Bar $1,000
First Last $5,550
Abc Def $3,000
Stack Overflow $6000
Help Please $4700
我想打印第三个字段大于4,000美元的行。期望产出:
First Last $5,550
Stack Overflow $6000
Help Please $4700
我不知道如何检查字段是否大于4000,例如,在其中包含$和,。
我尝试使用sed来用空格替换$和,,然后重定向到awk,但是我希望