Programming :: Pipeline When The File Requires Two Command Line Args?
Jan 18, 2010Suppose that there are two files
Code:
$ cat abc1
a1 a2
[code]...
Suppose that there are two files
Code:
$ cat abc1
a1 a2
[code]...
Was trying to write a shell script that has if conditional statements to decide different arguments for a command.Basically:
Code:
if [ "$1" = 1 ]
then
[code]...
I am using an awk command to print a line from a cvs file.the awk command includes an if statement that filter the output-lets say i want to print all the lines that the price field is greater than 30.i have it working when i put the parameters myself.. but when i try to send them with vars it wont work..i am sending the sign of the if statement - can only be: == , < , >it looks like this:
cat file.csv | awk -v sign=">" -v field="2000" '{if($3 sign field) printf "%-12s%-12s%-12s%-12s
",$1,$2,$3,$4}' FS=,
the bold part is the problem , because when i put the sign parameter myself t works great.. i guess its a chars issue but i cant spot it
What is the effect of pipe symbol in the second statement shown below? How does it differ from first one?
set nt [open "file" "r"]
set nt [open "|file" "r"]
I am searching for a file in a specific folder using the following command and storing it in a log file
find . -maxdepth 2 -type f -name "components.xml" -print | while read obj
do
basename `dirname $obj` >> avail_list.log
done
Here I want to do the following
1. Store each entry after processing in an array variable.
2. Use this array variables as arguments to function calls.
Here my primary objective is to store the entries from 'find' command in an array. So it is ok for me if I am not creating the log file.
I want to access a file, and check the length of every line.After, i want to check and replace all lines with length over 10 characters, with a message.Does anyone have a clue on that?
View 1 Replies View RelatedI have a perl script which was written for me by a professional (I have some basic knowledge), is working fine at the moment but on moving it to a different server as I'm changing a server (new server is shared and supports perl modules), I get the following message"Global symbol "$psid" requires explicit package name at admin.pl line 16". I get this for every single one for my values for the whole script which is about 2000 lines. Same error messages for main and admin.I haven't changed anything on moving it to the new server apart from the first line which is the location of the perl.I thought it would be too much to post the whole script here but anyone has any idea why is doing it taking into account that it works on a different server?
View 1 Replies View RelatedI'm trying to ssh my ubuntu laptop with my android phone. But with the app I have (connectbot) I don't seem to be able to pass any args to the command. I want to pass the -Y command to allow my phone access to the screen on my laptop so i can use my laptop (somewhat) from my phone. Can you change the args passed to the command while it is running?
View 5 Replies View RelatedI have a text string I want to pass as the second arg to a bash shell.
My python line is :
The first arg "gap" works great and the bash shell uses it as $1
I need "fill" passed along as $2 intact
Here is the bash line:
As you can see after the -f it has to be in single quotes and $FILL will complete the single quote
Nothing is getting passed as a second arg from python, I did have the first word at one time but that was 85 tries ago and forgot how I did it!
The bash script complains about an unterminated quote.
I'd like show a certain line or lines of a file with context, kind of like a unified diff, on the command line in Linux:
$ (something) -l 154 stuff.py
150: def foo(bar):
151: """
[code]....
Code: cmd='date | wc'
$cmd If this script is executed, an error is generated. The reason written was that "The execution fails because the pipe is not expanded and is passed to date as an argument".What is meant by expansion of pipe. When we execute date | wc on the command line, it goes fine.then | is not treated as an argument. Why?
I am trying to learn how to pass more than a one-command startup for gnome-terminal.
I will give an example of what I'm trying to do here:
Code:
#! /bin/bash
#
#TODO write this for gnome and xterm
USAGE="
${0##*/} [-x] [-g]
code....
However, running with the -g option to invoke gnome-terminal, I get a "There was an error creating the child process for this terminal" error.
This same error occurs if the gnome-terminal line is changed to
Code:
gnome-terminal -e mcTerm
Is there any way to pass more than one command on to gnome-terminal? I have tried various single and double quoting senarios and in a final attempt, I abstracted to an exported function all to no avail. Perhaps even though gnome-term is better at many things than xterm, xterm trumps it in this instance.
I have a project due for my Intro to C++ class and we are suppose to generate a file listing that will take an input of a C++ source code with .cpp extension and make a copy of it with a .lst extention that will have a line number preceding each and every line.
View 12 Replies View RelatedI wish to add information to one of my files based on matching IDs,
Here is an example
(the id is the 3 colunm)
(the ID is the 2 colunm)
And the output i wish to be
OUTPUT:
So as you can see the ones that do not match are still present, and the ones that do match just have the extra information from file2.txt added to them.
I thought about using join but that only seems to join the ones that match displays thoes only. i would like all the information in the output file.
I'm trying to convert this awk command from command line into an awk script, but just cannot get it to work:
This is what i have after my BEGIN
Am i missing something here? this just prints out the count for everyline, not counting lines on 5th field that match 'A'
I have two txt files containing x and y coordinates: xcoord.txt & ycoord.txt. I need to open them; read them line by line to get each coordinate; then each time I need to update Xs and Ys parameters inside another file called "dc.in" with the grabbed values.
Finally each time I need to run two exe files ( dc_2002 and st_vac) and produce corresponding output for each Xs and Ys ( dc.in is an input file for this exe files)
I have written the following code but it does not work:
Was wondering if any perl guru's could help me with a quick log file adjustment. I have a text file that looks like so (tabs and newlines are revealed so you can see what separates the data):
There are maybe 100 lines of text in this file at any given time. I need to delete all duplicate lines only looking at the first bit of text prior to the first tab. It doesn't matter which one gets deleted as long as there are no two lines that begin with that same text at the beginning before the first tab. So in this example, either the fist line "1234" or the last line "1234" would need to be deleted. I already have code in my script that opens the files - I just need the code to read the text into an array and the part that would find matches based on the above criteria, and make the deletions.
If it would be easier, I can even do a system call and use SED (v4.1.5) and/or AWK (3.1.5) instead.
bash 3.1.17(2) I'm trying do write a shell script which must operate on each line of an ASCII text file. So, all the code must be inside a loop, and inside the loop, the first thing should be to read the next line from the file. I have the bash read command. But it reads from stdin. Any way to make read from a file?
View 6 Replies View RelatedIn C, I want to make a program that will take a file and replace it with a file that's nearly the same but with some minor changes. Also, I would like to point out that I'm still fairly much a beginner with C. As for an example of the file, I want to take something like this:
Code:
Random Crap
More Random Crap
Even More
Something That Changes XXXXX
[code]....
I figured the best way to go about doing this was to open the file and a blank file, read the original bit by bit and when it gets to the point that needs to be changed exchange the part that needs to be changed with what it should be changed to, delete the original file, and rename the new one to the correct name. So the first problem I've run into (and I'll probably have more) is that when I'm trying to read stuff from the original file, my program doesn't seem to be finding the original. I'm sure much of my problems will be just from not knowing how to use the C functions so bear with me. Right now I have the following:
Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
[code]...
And when I try to run it I get the following:
Code:
Died Here: No such file or directory
Segmentation fault
Right now the length of 50 was just a random test length. Pretty much I was just trying to get it to read anything from the file. In the end I'm going to want it to read the entire file bit by bit, but at the moment I can't seem to get it to read anything.
I have a code over there. It reads a line from file and converts contents of it to double.
Code:
/*
* fileRead.c
[code]...
I need a qtimer to trigger reading of a file line by line, I have the code sort of running with the timer trigger but qtimer will just read the first line over and over as it is now.
Here is the code so far:
self.lcdtimer = QTimer()
self.connect(self.pushButton85,SIGNAL("clicked()"),self.update)
self.connect(self.lcdtimer, SIGNAL("timeout()"), self.lcdxyz)
Code:
def lcdxyz(self):
import time
import os
[code]....
I've never programed shell scripting.
Code goes like so:
I simply want to read a file "data.txt" line by line Then char by char and add them into a result var. The file is supossed to always contain numeric values
this script returns me :
sed: -e expression #1, char 2: extra characters after command
sed: -e expression #1, char 2: extra characters after command
Code:
#!/bin/bash
while read line
do
sed -i "$line" 'd' test.txt
done < test.txt
I need to run a command in a shell script to insert a line in a file, after it finds certain line. To add the line 'user = mysql' after the line [mysqld] in file /etc/my.cnf
View 3 Replies View Relatedi want to read line by line in a files in C language actually my porblem is i have a one file cotains
if iam using fgets, it is reading each time AT only it does not moving to Ok in that file
so I have a script that creates couple of txt files. First file output is something like below..
cn=test,ou=something,ou=some,o=org
cn=testa,ou=something,ou=some,o=org
cn=testb,ou=something,ou=some,o=org
second file output is something like below..
usera
userb
userc
Quote:
userdn=`ldapsearch -x -h $server -LLL "(objectclass=person)" dn | grep dn: | cut -d" " -f2 > userdn.txt
for i in $(cat userdn.txt);do
ldapsearch -h $server -p 389 -x -D $admid -w $admpwd -s one -b "$userdn" dn | grep dn: | cut -d" " -f2 | cut -d"=" -f2 | cut -d"," -f1 > user.txt
for i $(cat user.txt);do
echo "$userdn"
done
done
when I ran both ldapsearch commands invidually, they work fine. But when I ran script, I got first file correctly but not the second one. It looks like its not reading the first file correctly and not setting the variable ($userdn) value correctly in the second ldapseach command. I want read first file first line and run the second ldapsearch and continues, then read the second line..and so on.
My .jar file needs and uses some files in the same directory it's in (everything, including the jar was unzipped into said directory). It runs perfectly when I do java -jar file.jar in the command line, but there's trouble when I double-click the file when running from the file system manager. I've tried a custom command under properties ie java -jar, but the problem is that the .jar file doesn't seem to be able to use any of the files in the same directory. When running, the jar can't find any of the files that it needs.
View 5 Replies View RelatedI need to be able to convert HTML email messages saved as text files (.eml or .msg) to PDF documents, one PDF per email, retaining formatting and images.
Are there any Linux tools that will allow me to do this from the command line (so it can be scripted)?
I would like to convert a .ods file to a .csv file via command line on a server running ubuntu with no graphical interface.
xls2csv does a perfect job on xls files; is there something similar for ods files?
Does anyone know from experience a good gdb tutorial, so I can learn to use it from the command line.
View 2 Replies View Related