【发布时间】:2017-05-02 23:20:06
【问题描述】:
我实际上是 shell 脚本的新手。我有一个 file.txt 写成 662,2016-12-31。
示例:#cat file.txt
662,2016-12-31
我有另一个带有命令的 script.sh 文件 '{打印 $2",0"$1",field1,field2}'
示例:#cat script.sh
'{打印 $2",0"$1",field1,field2}'
我想在 field1 打印 662,在 field2 打印 2016-12-31。能做到吗?
【问题讨论】:
-
我认为您应该重新表述您的问题,以便更清楚 - 这是在 Stack Overflow 上获得出色答案的秘诀。现在我不知道你到底想做什么。
-
说实话,没有。但是,请看一下:
cat file.txt | perl -ne 'print "field1: $1 field2: $2\n" if /(.*),(.*)/'。您现在可以修改print之后的部分以重新排序您的字段,或在其间添加一些字符。如果这是你需要的。 -
"cat install_offer1.csv | sed 's/"880//g' |sed 's/"88//g'| sed 's/"//g'|sed 's/ ,019/,19/g'| nawk -F, '{print $1",0"$2",field1,field2"}' > install_offer2.csv" 实际上这是完整的命令。我只想在 field1 和 2016-12-31 的位置打印 662在 field2 的位置。所以每当我更改 file.txt 时,该命令也会更改,因为它总是从 file.txt 中获取参数。
-
您希望输出行看起来像
argument2,0argument1,662,2016-12-31吗?在这种情况下,你可以不用(n)awk:printf "%s,0%s,%s\n" "$2" "$1" "$(cat file.txt)"。
标签: linux bash shell arguments