#!/bin/bash
/abc/qwerty/AAAooo/testing/CBA_Car/Config/Test_Ctr.env
OUTPUT_FILE_NAME=$1
DATE=$2
cp /abc/section/AAAooo/CBACenter/slack_2010-05-1.txt ${OUTPUT_FILE_NAME}
如何在此脚本中执行计数并仅输出计数?不知何故,我需要能够计算这个 shell 脚本中的行数并输出计数值。我想我可能需要做这样的事情:
cat filename.txt | wc -l
但是,我不确定如何正确输入它以便语法正常工作。它一直给我一个错误。计数需要在这一行完成:
cp /abc/section/AAAooo/CBACenter/slack_2010-05-1.txt ${OUTPUT_FILE_NAME}
答案1
cp
(通常)不输出任何内容。如果您使用cp -v
,它将输出正在复制的每个文件的名称,但不输出其内容。
类 UNIX 环境通常非常擅长使用能够精确完成一项工作的工具,并且做得很好。计算文件中的行数( 的工作wc
)不属于将文件从一个位置复制到另一个位置(例如 )的工具的范围cp
。
如果您想计算文件中的行数并复制它,则需要分别执行这两个单独的任务。
$ cp /old/path/to/file /new/path/to/file
$ filelength="$( wc -l < /path/to/file )"
答案2
你可以通过下面的方法来做到
#!/bin/bash
cp $1 $2
wc -l $2
上面的脚本将 $1(file1) 内容复制到 $2(file2) ,然后复制到第二个文件。它将打印 file2 中的行数
我们应该执行如下脚本
sh scriptname file1 file2
$1=file1
$2=file2